2013-08-04 4 views
0

값이 "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'); 

답변

5

당신의 괄호과 브라켓이 XPath 식의 끝에서 제대로 닫지 않는 것 같다.

또한 무엇입니까 호텔 하펜 함부르크? 이 value이라는 속성 인 경우 값 확인은 다음과 같아야합니다

[@value="Hotel Hafen Hamburg"] 

당신은 그 값이 있어야하는데를 지정하지 않고, 다음 값을 @를 작성하고 수 없습니다.

편집 : XML 문서를 보면 호텔 하펜 함부르크<name> 요소의 텍스트 콘텐츠로 간주됩니다. 따라서 속성이 아닌 해당 값을 가진 텍스트 노드를 찾으십시오.

boolean(//result/name[text() = "Hotel Hafen Hamburg"]) 
+0

감사합니다. 이 오류 메시지가 표시되기 때문에 이미 오류가 있습니다. 경고 : SimpleXMLElement :: xpath() : 25 행의 잘못된 표현 Warning : SimpleXMLElement :: xpath() : xmlXPathEval : 25 행의 평가가 실패했습니다. – susi87

+0

@ susi87 : 죄송합니다. , 여는 괄호 앞에 쓸모없는 슬래시가 있습니다 - 다시 시도 할 수 있습니까? 그것은 [이 시험대에서] 작동하는 것으로 보인다 (http://www.freeformatter.com/xpath-tester.html). –

관련 문제