2011-10-11 3 views
8

나는 부모 노드의 @code가 UNK 인 경우 만이 아이의 @code 값을해야조건부 Xpath 문을 만드는 방법은 무엇입니까?

xmlnode.SelectSingleNode("if (ns:substanceAdministration/ns:consumable/@typeCode == UNK) then evaluateThisXpath else evaluateOtherXpath") 

내 관심

<drugID code="UNK"> <sub code="2232" /> </drugID> 

IS-로 삼았 조건부로 XML 파싱 노드를 선택합니다 그렇지 않으면 parent @code 값을 가져옵니다.

답변

7

이 트릭을 수행해야합니다,

(drugID[@code='UNK']/sub)|(drugID[@code<>'UNK') 

그것은이다의 XPath 의사를 라이브러리 언어로 변경

5

사용 :

drugId[@code = 'UNK']/sub/@code | drugId/@code[not(. = 'UNK')] 

"생략"할 수있는 :

(drugId[@code = 'UNK']/sub | drugId[not(@code = 'UNK')])/@code