php xml expat 解析器
有两种基本的 xml 解析器类型:
基于树的解析器:这种解析器把 xml 文档转换为树型结构。它分析整篇文档,并提供了 api 来访问树种的元素,例如文档对象模型 (dom)。
基于事件的解析器:将 xml 文档视为一系列的事件。当某个具体的事件发生时,解析器会调用函数来处理。
expat 解析器是基于事件的解析器。
xml expat 解析器是 php 核心的组成部分。无需安装就可以使用这些函数。
xml 文件:
george
john
reminder
don't forget the meeting!
初始化 xml 解析器:
;
break;
case to:
echo to: ;
break;
case from:
echo from: ;
break;
case heading:
echo heading: ;
break;
case body:
echo message: ;
}
}
//function to use at the end of an element
function stop($parser,$element_name)
{
echo
;
}
//function to use when finding character data
function char($parser,$data)
{
echo $data;
}
//specify element handler
xml_set_element_handler($parser,start,stop);
//specify data handler
xml_set_character_data_handler($parser,char);
//open xml file
$fp=fopen(test.xml,r);
//read data
while ($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp)) or
die (sprintf(xml error: %s at line %d,
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
//free the xml parser
xml_parser_free($parser);
?>
------解决方案--------------------
技术分析贴?