2016-07-13 1 views
1

나는 다음과 같은 HTML 조각이 있습니다XPath 선택기를 사용하여 하위 노드를 제외하는 방법은 무엇입니까?

//div[contains(@class, "d1") and (@class!="a1") and (@class!="a2")] 

하지만 실패 :

<div class="d1"> 
<p> 
    text 
<br/> 
<div class="d2"> text </div> 
... 
<a class="a1">a1</a> 
<a class="a2">a2</a> 
</div> 

내가 d1 클래스의 콘텐츠를하고이를 사용하여 a1a2 클래스를 제외 할 수 있습니다.

선택기를 작성하려면 어떻게해야합니까?

답변

1

XPath는 변환 용이 아닌입니다. (XSLT는 변환을위한 것입니다.)

당신은 특정 a 요소를 포함하지 않는 div 요소를 선택할 수 있습니다 div 요소가 이미 입력 문서에 존재하는 경우에만; div 요소를 선택한 다음 선택한 요소를 제거 할 수 없습니다.

+0

감사합니다. 이유가 알았습니다. 그러나이 상황에서 원하는 결과를 얻으려면 어떻게해야합니까? xpath 선택기를 사용하지 마십시오. –

+0

반갑습니다. 그렇습니다. XPath는 이것을 할 수 없습니다. 좋아하는 프로그래밍 언어와 결합 된 XSLT 또는 XML 파싱 라이브러리와 같은 다른 도구를 고려하십시오. 감사. – kjhughes

관련 문제