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