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.xxx.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 && !empty($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();