有一個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();