2013-05-02 5 views
2

속성이있는 자식 노드가있는 노드를 가져 오려는 az xpath를 만들려고합니다. 내 문제는이 구조의 유일한 차이점은 자식 특성입니다. 다음은 내가 의미하는 바를 보여주는 예입니다.XPath 지정된 속성 값을 가진 자식이있는 노드를 선택하십시오.

<Values> 
    <record name="svc_sig"> 
     <record name="sig_in"> 
      <array name="rec_fields"> 
       <record> 
        <value name=field_name">UniqueName1</value> 
       </record> 
       <record> 
        <value name=field_name">UniqueName2</value> 
       </record> 
       <record> 
        <value name=field_name">UniqueName3</value> 
       </record> 
       <record> 
        <value name=field_name">UniqueName4</value> 
       </record> 
      </array> 
     </record> 
    </record> 
<Values> 

예를 들어 UniqueName3이 포함 된 레코드를 얻고 싶습니다. 이와

/Values/record[@name='svc_sig']/record[@name='sig_in']/array[@name]/record/value[@name='field_name'] 

그러나 나는 속성 FIELD_NAME을 가지고 모든 값 노드를 얻을 : 지금까지 나는 다음을 시도했다.

+4

'UniqueName3'문자열이있는 '레코드'를 얻으려면 [value/text() = 'UniqueName3'] 레코드와 같은 XPATH를 사용해야합니다. –

+0

감사합니다. – Wrath

답변

5

이 작업을 시도 할 수 있습니다 :

//value[text()="UniqueName3"]/.. 

이 그것을 텍스트 값입니다으로 UniqueName3 들어있는 value 요소의 부모 인 record 요소를 선택합니다.

여기에 증거가 있습니다 : http://www.xpathtester.com/obj/1afeedf1-46bd-4adb-841e-da6e6945b6d4 (시험 버튼 누르기).

+0

'text =)가 아닌'. ='도 할 수 있다고 생각합니다. – EralpB

+0

text()가 아닌 노드를 테스트하려면 어떻게해야할까요? –

관련 문제