用php读取xml数据

高洛峰
发布: 2016-12-02 10:24:46
原创
1754人浏览过

parser是php内置的一个用来处理xml的解析器,它的工作由三个事件组成:起始标签、 读取数据、结束标签。 
也就是说在对xml进行处理的时候每当遇到起始标签、数据和结束标签的时候函数会做相应的动作来完成对xml数据的转换。 
php中对xml读取的相关函数的介绍: 
引用: 
对象 xml解析函数 描述: 
元素 xml_set_element_handler() 元素的开始和结束 
字符数据 xml_set_character_data_handler() 字符数据的开始 
外部实体 xml_set_external_entity_ref_handler() 外部实体出现 
未解析外部实体 xml_set_unparsed_entity_decl_handler() 未解析的外部实体出现 
处理指令 xml_set_processing_instruction_handler() 处理指令的出现 
记法声明 xml_set_notation_decl_handler() 记法声明的出现 
默认 xml_set_default_handler() 其它没有指定处理函数的事件 
下面是一个用parser函数来读取xml数据的例子:

<?php 
//创建一个parser编辑器 
$parser = xml_parser_create();  
//设立标签触发时的相应函数 这里分别为startElement和endElenment 
xml_set_element_handler($parser, "startElement", "endElement"); 
//设立数据读取时的相应函数 
xml_set_character_data_handler($parser, "characterData"); 
$xml_file="1.xml";//指定所要读取的xml文件,可以是url 
$filehandler = fopen($xml_file, "r");//打开文件 
while ($data = fread($filehandler, 4096)) 

  xml_parse($parser, $data, feof($filehandler)); 
}//每次取出4096个字节进行处理 
fclose($filehandler); 
//关闭和释放parser解析器 
xml_parser_free($parser); 
$name=false; 
$position=false; 
//起始标签事件的函数 
function startElement($parser_instance, $element_name, $attrs) 

   global $name,$position; 
   if($element_name=="NAME"){ 
       $name=true; 
       $position=false; 
       echo "名字:"; 
   } 
   if($element_name=="POSITION"){ 
       $name=false; 
       $position=true; 
       echo "网址:"; 
   } 

//读取数据时的函数 
function characterData($parser_instance, $xml_data)  

    global $name,$position; 
    if($position) 
      echo $xml_data."<br>"; 
    if($name) 
      echo $xml_data."<br>"; 

//结束标签事件的函数 
function endElement($parser_instance, $element_name)  

    global $name,$position; 
    $name=false; 
    $position=false; 

?>    


xml文件代码如下: 

angular+echart-js统计数据图表读取投屏显示代码
angular+echart-js统计数据图表读取投屏显示代码

angular+echart-js统计数据图表读取投屏显示代码

angular+echart-js统计数据图表读取投屏显示代码 116
查看详情 angular+echart-js统计数据图表读取投屏显示代码

<?xml version="1.0"?> 
<employees> 
<employee> 
<name>网站名称</name> 
<position age="45">php中文网</position> 
</employee> 
<employees> 
<employee> 
<name>网站URL</name> 
<position age="45">http://www.php.cn</position> 
</employee> 
</employees>    

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号