2013-12-11 2 views
0

첫째 아이 첵 값을 선택XPath는 내가하고 싶은 것, 내가 단위 테스트에 대한 XPath를 사용하려면

<?xml version="1.0"?> 
<api_data> 
    <message>OK</message> 
    <status>200</status> 
    <data> 
     <name>John</name> 
     <email>[email protected]</email> 
    </data> 
</api_data> 

가 지금은 이름이 john 있는지 확인하려면 이메일은 [email protected]

입니다

XPath 쿼리 : /api_data[message="OK"]

이 작동 좋아, 이제 다음 예제 :

<?xml version="1.0"?> 
<api_data> 
    <message><value>OK</value></message> 
    <status><value>200</value></status> 
    <data> 
     <name><value>John</value></name> 
     <email><value>[email protected]</value></email> 
    </data> 
</api_data> 

xpath query : /api_data[message="OK"]

그리고 이것은 여전히 ​​일치합니다. 그러나 나는 그것을 원하지 않습니다. 그래서 나는 그것을 더 엄격하게하고 싶습니다.하지만 어떻게해야합니까?

나는 당신이 할 필요가에 대한 <value>

+0

'/ api_data [메시지/값 = "OK"]를'? – BLUEPIXY

답변

1

XPath에서 요소의 문자열 값은 모든 자손 텍스트 노드, 즉 요소 내부에 직접 포함 된 모든 텍스트 또는 하위 요소, 손자 등을 연결 한 것입니다.

따라서 두 문자열값 도 10은 "OK"인 message 모든 자식 요소가없는 :

/api_data/message[.="OK"][not(*)] 
0

없는 값 자녀와 일치하는, 그래서 단지 경기를하고 싶지 않아/* "OK"] 정의에

xpath query: /api_data/message/*["OK"] 
+0

값이 하위 인 자녀와 일치하는 것을 원하지 않으므로 ''이 (가) –

+0

과 일치합니다. 이제 내 수정 사항을 확인하십시오. 요구 사항이 변경되었습니다. – Nambi

+0

여전히 일치하지 않습니다. 해결책을 참조하십시오. –

관련 문제