<?php
// 创建 Expat 解析器对象
$parser = xml_parser_create();
// 定义处理开始元素的回调函数
function startElement($parser, $name, $attrs) {
echo "开始元素: $name<br>";
}
// 定义处理结束元素的回调函数
function endElement($parser, $name) {
echo "结束元素: $name<br>";
}
// 定义处理元素数据的回调函数
function characterData($parser, $data) {
echo "元素数据: $data<br>";
}
// 设置回调函数
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "characterData");
// 读取 XML 数据
$xmlData = '<root><name>John Doe</name><age>30</age></root>';
// 解析 XML 数据
xml_parse($parser, $xmlData);
// 释放 Expat 解析器对象
xml_parser_free($parser);
?>
在上述示例中,我们首先创建了一个Expat解析器对象(xml_parser_create),然后定义了三个回调函数:startElement用于处理开始元素,endElement用于处理结束元素,characterData用于处理元素数据。接着,我们使用xml_set_element_handler和xml_set_character_data_handler将这些回调函数与解析器关联起来。
最后,我们提供了一个XML字符串,并调用xml_parse来启动解析过程。解析器将触发相应的回调函数,并输出相关信息。最后,我们使用xml_parser_free释放了Expat解析器对象。
这是一个简单的例子,实际上你可能需要根据XML文档的结构和需求编写更复杂的回调函数来处理各种元素和数据。 Expat解析器提供了一种轻量级的方式来处理XML,特别适用于大型文档或需要逐行解析的情况。
转载请注明出处:http://www.zyzy.cn/article/detail/3448/PHP