0
我有下面的示例XML文檔:如何使用SimpleXML在PHP中的單個元素上執行XPath?
<?xml version="1.0" encoding="UTF-8" ?>
<database>
<record>
<id>1</id>
<a>5</a>
</record>
<record>
<id>5</id>
<a>8</a>
</record>
<record>
<id>7</id>
<!--No a record!-->
</record>
<record>
<id>6</id>
<a>10</a>
</record>
</database>
我想通過每一個「記錄」元素進行迭代,並獲取其相應如果存在「a」元素。
我嘗試這個使用下面的代碼:
$xml = new SimpleXMLElement($xmlStringDataFromFile);
foreach ($xml->record as $record) {
$id = $record->xpath("//id")[0];
$a = $record->xpath("//a")[0];
echo "{$id}: {$a}\n";
}
但是執行的XPath是對整個文檔。而不是個人「記錄」元素。因此,我得到了以下的輸出:
1: 5
1: 5
1: 5
1: 5
我想下面的輸出:
1: 5
5: 8
7:
6: 10
我該怎麼辦呢?