函数名称:xml_parser_create()
适用版本:PHP 4, PHP 5, PHP 7
函数描述: xml_parser_create() 函数用于创建一个 XML 解析器对象。
语法: resource xml_parser_create ( [string $encoding] )
参数:
- encoding(可选):指定解析器使用的字符编码,默认为 ISO-8859-1。
返回值: 成功时返回一个 XML 解析器资源,失败时返回 false。
示例:
// 创建一个 XML 解析器
$parser = xml_parser_create();
// 设置解析器的选项
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
// 定义处理开始标签的回调函数
function startElement($parser, $element_name, $element_attrs) {
echo "开始标签:".$element_name."<br>";
}
// 定义处理结束标签的回调函数
function endElement($parser, $element_name) {
echo "结束标签:".$element_name."<br>";
}
// 定义处理元素数据的回调函数
function characterData($parser, $data) {
echo "元素数据:".$data."<br>";
}
// 设置回调函数
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");
// 解析 XML 数据
$xml_data = "<root><name>John Doe</name><age>30</age></root>";
if (!xml_parse($parser, $xml_data)) {
die(sprintf("XML 解析错误:%s 行 %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
// 释放解析器资源
xml_parser_free($parser);
以上示例创建了一个 XML 解析器对象,然后设置了解析器的选项和回调函数。接下来,使用 xml_parse() 函数解析了一个 XML 数据。如果解析过程中发生错误,通过 xml_error_string() 和 xml_get_current_line_number() 函数获取错误信息。最后,使用 xml_parser_free() 函数释放了解析器资源。
注意:示例中的回调函数 startElement()、endElement() 和 characterData() 只是示意,实际应根据具体需求编写相应的回调函数来处理解析的 XML 数据。