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);
?>