2014-11-26 3 views
1

각자 고유 한 <id> 요소를 가진 항목 목록이 있다고 가정합니다. 이 항목 중 어느 것이 '기본'인지를 지정하는 <primaryId> 요소 (바깥 쪽 언급 목록)도 있습니다. '기본'항목의 <value> 요소는 어떻게 선택합니까? .Net에서 XPath를 사용하는 것이 가능합니까?XPath : 다른 노드의 값을 기준으로 노드를 선택하십시오.

다음 예제의 결과는 <value>val2</value>이어야합니다. XPath에의

<root> 
    <primaryId>2</primaryId> 
    <items> 
    <item> 
     <id>1</id> 
     <value>val1</value> 
    </item> 
    <item> 
     <id>2</id> 
     <value>val2</value> 
    </item> 
    </items> 
</root> 

답변

3

위치 경로는 []에 조건을 포함 할 수 있습니다.

그래서 일단 기본 ID 노드 선택

[id=/root/primaryId] 

이 항목을 필터링하는 데 사용 조건의 맥락에서 id 요소와 비교,

/root/primaryId 

이 조건 확인을 노드 :

/root/items/item[id=/root/primaryId] 

완전한 표현 :

-1
<xsl:value-of select="/root/items/item[id=/root/primaryId]/value"/> 
+1

일반적으로 사용자가 제안하거나 변경 한 내용에 대한 설명을 통해 답이 크게 향상됩니다. – JoelC

+0

2x2의 결과를 묻는다면 4 이외에 답으로 무엇을 기대합니까? 이것은 xpath와 xpath (xslt 내부)에 대한 간단한 질문입니다. 더 쉬울 수는 없습니다. –

+1

위의 ThW의 대답을 참조하십시오. – JoelC

관련 문제