PHP中使用xmlreader读取xml数据示例
这篇文章主要介绍了PHP中使用xmlreader读取xml数据示例,本文示例相对简单,只包含了一个读取功能,需要的朋友可以参考下
有一个XML文件,内容如下:
- <?xml version="1.0"?>
- <shows>
- <show>
- <name>Simpsons</name>
- <channel>FOX</channel>
- <start>8:00 PM</start>
- <duration>30</duration>
- </show>
- <show>
- <name>Law & Order</name>
- <channel>NBC</channel>
- <start>8:00 PM</start>
- <duration>60</duration>
- </show>
- </shows>
这里我们使用XMLReader扩展来解析和处理该文件,XMLReader还有一个好处是以Stream的形式读取数据,即纵然面对超大的xml文件依然可以从容处理。下面是我们针对以上文件的处理方式:
- $indexUrl='http://www.phpfensi.com/xxx.xml';
- $reader = new XMLReader();
- $reader->open($indexUrl);
- $countElements = 0;
- while ($reader->read()){
- if($reader->nodeType == XMLReader::ELEMENT){
- $nodeName = $reader->name;
- }
- if($reader->nodeType == XMLReader::TEXT && !emptyempty($nodeName)){
- switch($nodeName){
- case 'name':
- $name = $reader->value;
- break;
- case 'channel':
- $channel = $reader->value;
- break;
- case 'start':
- $start = $reader->value;
- break;
- case 'duration':
- $duration = $reader->value;
- break;
- }
- }
- }
- $reader->close();