2013-07-10 2 views
0

가정하자 나는 다음과 같은 XML을 가지고 XPATH에서 일부 노드를 가져옵니다

<a> 
    <b></b> 
    <c></c> 
    <d></d> 
    <e></e> 
</a> 

내가 D 제외 의 모든 아이를 얻고 싶은 경우에

. 이를 위해, 나는 다음을 사용 :

/a/*[not(self::d)] 

그러나,이 B, C, 3 개 별도의 노드에서 전자을 반환합니다. 내가 찾고있는 것은 b, ce (dd제외)을 포함하는 하나의 노드입니다. 다음과 같은 의사 코드와 비슷한 것이 될 것입니다 :

/a/* and <do not include /a/d please> 

이게 가능합니까?

감사합니다.

+0

XPath 1.0에서는 사용할 수 없습니다. 버전 2에서는 잘 모르겠습니다. – choroba

답변

2

XPath - 버전 1.0, 2.0 또는 3.0과 상관없이 XPath는 하위 트리 만 쿼리 할 수 ​​있으며 새 요소를 수정하거나 (포함하여) 수정하거나 구성 할 수 없습니다.

이 목적으로 XQuery 또는 XSLT를 사용하거나 쿼리 언어 외부에서 문서를 수정하고 결과 하위 트리를 선택하기 위해 XPath 만 사용하고 나중에 다른 XPath를 사용하여 원하지 않는 노드를 선택하고 제거해야합니다. 사용중인 프로그래밍 언어의 결과.

관련 문제