php使用函数方式读取XML的例子,有需要的朋友可以参考下。
<?php
//第一步 创建解析器 xml_parser_create(编码);
$xml = xml_parser_create('utf-8');
//xml_parser_set_option — 为指定 XML 解析进行选项设置
//xml_parser_set_option($xml,XML_OPTION_CASE_FOLDING,false); false原样输出
//注册事件,将遇到开始和结束表计时使用什么函数
xml_set_element_handler($xml,"starttag","endtag");
xml_set_character_data_handler($xml,"content");
function starttag($x,$tagName,$args){
if($tagName=="USERS")
echo "<table border='1' width='800' align='center' ><caption>{$tagName}";
else if($tagName == "USER"){
echo "<tr>";
echo "<td>{$args['ID']}</td>";
}else
echo "<td>";
}
function endtag($x,$tagName){
if($tagName=="USERS")
echo "</caption></table>";
else if($tagName == "USER")
echo "</tr>";
else
echo "</td>";
}
function content($x,$content){
echo $content;
}
$printerror=false;
$xmlfile="user.xml";
//第二步 读取数据
$fp=fopen($xmlfile,"r");
while(!feof($fp)){
$data=fread($fp,1024);
//开始解析
if(!xml_parse($xml,$data)){
$printerror=true;
}
}
//关闭文件
fclose($fp);
if($printerror){
$row=xml_get_current_line_number($xml);
$col=xml_get_current_column_number($xml);
$errormess=xml_error_string(xml_get_error_code($xml));
echo "在文件{$xmlfile}中,[{$row}行,{$col}列]:{$errormess}.";
}
//关闭解析器
xml_parser_free($xml);
?>