2015-01-08 1 views
1

일부 조건을 사용하여 XML에서 속성 값을 가져 오려고합니다. XPATH 조건에서 값 그룹이 어떻게 점검되는지는 몰랐습니다. 내가 일치하지 않는 가치를 할그룹화 조건을 사용하여 XML에서 값을 가져 오는 방법은 무엇입니까?

<TTIDCData> 
    <CYAccountHide HideTable="False"> 
     <fldAccountType Value="55" HideField="False" PrintValue="55" Description=""/> 
     <fldActNumber Value="502100" HideField="False" PrintValue="502100"/> 
    </CYAccountHide> 
    <CYAccountHide HideTable="False"> 
     <fldAccountType Value="55" HideField="False" PrintValue="55" Description=""/> 
     <fldActNumber Value="502200" HideField="False" PrintValue="502200"/> 
    </CYAccountHide> 
    <CYAccountHide HideTable="False"> 
     <fldAccountType Value="55" HideField="False" PrintValue="55" Description=""/> 
     <fldActNumber Value="502200" HideField="False" PrintValue="502200"/> 
    </CYAccountHide> 
    <CYAccountHide HideTable="False"> 
     <fldAccountType Value="55" HideField="False" PrintValue="55" Description=""/> 
     <fldActNumber Value="502222" HideField="False" PrintValue="502200"/> 
    </CYAccountHide> 
    <person name="blair" address="502100"/> 
    <person name="blair" address="502200"/> 
    <person name="blair" address="502205"/> 
    <person name="blair" address="502200"/> 
</TTIDCData> 

:

다음은 내 XML 형식입니다. 조건은 //CYAccountHide/fldActNumber/@Value != //person/@address

그러나이 조건은 작동하지 않습니다.

기본적으로 내 XML에는 //CYAccountHide/fldActNumber/@Value의 값이 있습니다.이 속성은 502100,502200,502201이고 //person/@address 속성의 값은 502100,502200입니다. xpath의 도움으로 가치를지기를 원합니다 502201

// CYAccountHide/fldActNumber/@ Value! = '502100'이 조건은 작동하지만이 XML 태그로 값 그룹을 확인해야합니다 .

+0

귀하의 질문이 명확하지 않다 할 것이다. "XPATH 조건에서 값 그룹 검사"란 무엇입니까? _expected result_ (XPath 표현식이 리턴해야하는 것)을 표시하면 도움이됩니다. –

+0

내 질문은 어떻게 CYAccountHide/fldActNumber/@ 값이 경로와 사람/@ 주소와 비교에서 다른 가치를 얻을 수 .. 두 경로는 일부 값을 반환하지만 다른 (같지 않은) 가치가 필요합니다 .. –

+0

"예상 결과를 보여주는 (XPath 표현식이 리턴해야하는 것) 도움이 될 것입니다. –

답변

2

나는 당신이 지금 필요한 것을 이해했다고 생각합니다.

//CYAccountHide/fldActNumber/@Value  Select all attributes named "Value" of 
              elements "fldActNumber" that themselves are 
              children of "CYAccountHide" elements. 
[not(. = //person/@address)]    but only return them if there is no "person" 
              element anywhere in the document that has an 
              "address" attribute with the same value as 
              the "Value" attribute. 

로 변환 다음 XPath 식

//CYAccountHide/fldActNumber/@Value[not(. = //person/@address)] 

를 사용하고 결과는

Value="502201" 
관련 문제