php使用函数方式读取XML文件的例子

发布时间:2019-10-29编辑:脚本学堂
php使用函数方式读取XML的例子,有需要的朋友可以参考下。

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