我想在XML数据中确定“B& B Hotel Hamburg-Altona”这一术语的位置。
XML如下:
<PlaceSearchResponse>
<status>OK</status>
<result>
<name>Hotel Grüner Berg</name>
</result>
<result>
<name>Hotel ABC</name>
</result>
<result>
<name>Hotel Lorem Ipsum</name>
</result>
<result>
<name>B&B Hotel Hamburg-Altona</name>
</result>
<result>
<name>Hotel Lorem Ipsum</name>
</result>
<result>
<name>Hotel Lorem Ipsum</name>
</result>
我的php脚本:
$apiUmgebungUrl = "https://maps.googleapis.com/maps/api/place/textsearch/xml?query=Hotel+in+Hamburg&radius=500&sensor=true&key=geheimerkey";
$xml = new SimpleXMLElement($apiUmgebungUrl, null, true);
echo $q = $xml->xpath('result/[contains(name,"B&B Hotel Hamburg-Altona")][position() <= 1]');
但我得到错误:
警告:SimpleXMLElement :: xpath():表达式无效 第14行的C:\ xampp_18 \ htdocs \ xmlposition.php
警告:SimpleXMLElement :: xpath():xmlXPathEval:评估失败 第14行的C:\ xampp_18 \ htdocs \ xmlposition.php
答案 0 :(得分:0)
谓词([]
中的条件)不应该由元素名称中的/
分隔。
result[contains(name,"B&B Hotel Hamburg-Altona")][position() <= 1]
另请注意,您的XML不正确:&
应表示为&
。
要获得该位置,请计算前一个兄弟姐妹的数量:
count(result[contains(name,"B&B Hotel Hamburg-Altona")][position() <= 1]/preceding-sibling::*)