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();