PHP中使用xmlreader读取xml数据示例

这篇文章主要介绍了PHP中使用xmlreader读取xml数据示例,本文示例相对简单,只包含了一个读取功能,需要的朋友可以参考下

有一个XML文件,内容如下:

  1. <?xml version="1.0"?>
  2. <shows>
  3. <show>
  4. <name>Simpsons</name>
  5. <channel>FOX</channel>
  6. <start>8:00 PM</start>
  7. <duration>30</duration>
  8. </show>
  9. <show>
  10. <name>Law &amp; Order</name>
  11. <channel>NBC</channel>
  12. <start>8:00 PM</start>
  13. <duration>60</duration>
  14. </show>
  15. </shows>

这里我们使用XMLReader扩展来解析和处理该文件,XMLReader还有一个好处是以Stream的形式读取数据,即纵然面对超大的xml文件依然可以从容处理。下面是我们针对以上文件的处理方式:

  1. $indexUrl='http://www.phpfensi.com/xxx.xml';
  2. $reader = new XMLReader();
  3. $reader->open($indexUrl);
  4. $countElements = 0;
  5. while ($reader->read()){
  6. if($reader->nodeType == XMLReader::ELEMENT){
  7. $nodeName = $reader->name;
  8. }
  9. if($reader->nodeType == XMLReader::TEXT && !emptyempty($nodeName)){
  10. switch($nodeName){
  11. case 'name':
  12. $name = $reader->value;
  13. break;
  14. case 'channel':
  15. $channel = $reader->value;
  16. break;
  17. case 'start':
  18. $start = $reader->value;
  19. break;
  20. case 'duration':
  21. $duration = $reader->value;
  22. break;
  23. }
  24. }
  25. }
  26. $reader->close();