检查节点值是否存在

sus*_*i87 1 xpath

我想检查一个xml,如果有一个节点的值为"Hotel Hafen Hamburg".

但是我得到了错误.

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');
Run Code Online (Sandbox Code Playgroud)

O. *_*per 6

看来您的parantheses和括号在XPath表达式的末尾没有正确关闭 - 它应该结束]).

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

[@value="Hotel Hafen Hamburg"]
Run Code Online (Sandbox Code Playgroud)

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

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

boolean(//result/name[text() = "Hotel Hafen Hamburg"])
Run Code Online (Sandbox Code Playgroud)