PHP中使用xmlreader读取xml数据示例
有一个XML文件,内容如下:
<?xmlversion="1.0"?> <shows> <show> <name>Simpsons</name> <channel>FOX</channel> <start>8:00PM</start> <duration>30</duration> </show> <show> <name>Law&Order</name> <channel>NBC</channel> <start>8:00PM</start> <duration>60</duration> </show> </shows>
这里我们使用XMLReader扩展来解析和处理该文件,XMLReader还有一个好处是以Stream的形式读取数据,即纵然面对超大的xml文件依然可以从容处理。下面是我们针对以上文件的处理方式:
$indexUrl='http://www.xxx.com/xxx.xml'; $reader=newXMLReader(); $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();