1

如果有一个值为“Hotel Hafen Hamburg”的节点,我想检查一个xml。

但我得到了错误。

SimpleXMLElement::xpath():第 25 行的无效谓词

您可以在此处查看 xml。

http://de.sourcepod.com/dkdtrb22-19748

到目前为止,我已经编写了以下代码。

$apiUmgebungUrl = "xml.xml";
$xml_umgebung = simplexml_load_file($apiUmgebungUrl);
echo $nameexist = $xml_umgebung->xpath('boolean(//result/name[@Hotel Hafen Hamburg');
4

1 回答 1

7

似乎您的括号和括号在 XPath 表达式的末尾没有正确关闭 - 它应该以]).

另外,汉堡港酒店是什么?如果它是一个名为 的属性value,则您的值检查应如下所示:

[@value="Hotel Hafen Hamburg"]

你不能只写@一个值,而不指定该值应该在哪里。

编辑:查看 Xml 文档,似乎Hotel Hafen Hamburg应该是<name>元素的文本内容。因此,尝试查找具有该值而不是属性的文本节点:

boolean(//result/name[text() = "Hotel Hafen Hamburg"])
于 2013-08-04T13:45:00.540 回答