PHP 注意:尝试在 PHP 中使用 xpath 查询在过滤 XML 上获取 属性 的非对象
PHP Notice: Trying to get property of non-object on filtering XML with xpath query in PHP
我正在尝试过滤我的 XML 文件以查找具有特定名称的元素。我已按照 here 的说明进行操作,但结果每次都是空的。
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}";
只有代码returns"found"
代码给出以下 PHP 错误:
PHP Notice: Trying to get property of non-object
我还尝试了以下变体:
$info = $xml->xpath('/vertalingen/kamers/kamer[naam="Bruidssuite"]');
$info = $xml->xpath('/kamers/kamer[naam="Bruidssuite"]');
即 XPath 查询 return 的几个元素。 xpath()
的 return 值是数组(成功时)或 FALSE(错误时),
Returns an array of SimpleXMLElement objects or FALSE in case of an
error.
尝试以下操作:
$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}";
我正在尝试过滤我的 XML 文件以查找具有特定名称的元素。我已按照 here 的说明进行操作,但结果每次都是空的。
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}";
只有代码returns"found"
代码给出以下 PHP 错误:
PHP Notice: Trying to get property of non-object
我还尝试了以下变体:
$info = $xml->xpath('/vertalingen/kamers/kamer[naam="Bruidssuite"]');
$info = $xml->xpath('/kamers/kamer[naam="Bruidssuite"]');
即 XPath 查询 return 的几个元素。 xpath()
的 return 值是数组(成功时)或 FALSE(错误时),
Returns an array of SimpleXMLElement objects or FALSE in case of an error.
尝试以下操作:
$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}";