我正在尝试为具有特定名称的元素筛选XML文件。我按照这里的指示进行了操作,但每次结果都是空的。
XML
<vertalingen>
<kamers>
<kamer>
<naam>Bruidssuite</naam>
<beschrijving>Lorum Ipsum</beschrijving>
</kamer>
</kamers>
</vertalingen>
PHP
$xml = simplexml_load_file('translations/nederlands.xml');
$info = $xml->xpath('//kamer[naam="Bruidssuite"]');
echo " found {$info->naam}";
代码只返回"已找到"
该代码给出以下PHP错误:
PHP注意:试图获取非对象的属性
我还尝试了以下变体:
$info = $xml->xpath('/vertalingen/kamers/kamer[naam="Bruidssuite"]');
$info = $xml->xpath('/kamers/kamer[naam="Bruidssuite"]');
该XPath查询返回几个元素。xpath()
的返回值是一个数组(成功时)或FALSE(错误时),
来自php.net手册:
返回SimpleXMLElement对象的数组,如果错误
尝试以下操作:
$kamers = $xml->xpath('//kamer[naam="Bruidssuite"]');
foreach($kamer as $kamers) {
echo "Found {$kamer->naam}<br />";
}
或者,如果您确定属性naam
是唯一的,则只获取第一个元素:
$info = $xml->xpath('//kamer[naam="Bruidssuite"]');
echo " found {$info[0]->naam}";