2016-10-23 2 views
3

나는 HTML 파일의 모양이 다음과 같은 : 나는 액션 노드를 충족 할 때까지 모든 이벤트 노드에 대한 모든 다음 형제 노드를 찾아, 먼저 HTML 파일의 모든 이벤트 노드를 찾을 수있다하고 싶으면 무엇특정 형제가되기 전에 모든 자식 요소에 대한 XPath?

<r> 
    <ab id = "1"> 
    <event/> 
    <li>a</li> 
    <li>b</li> 
    <action/> 
    <li>a2</li> 
    <li>b2</li> 
    <action/> 
    </ab> 
    <ab id = "2"> 
    <event/> 
    <li>a3</li> 
    <li>b3</li> 
    <action/> 
    </ab> 
</r> 

. 따라서, 최초의 이벤트 노드에 대해, 결과는

<li>a</li> 
<li>b</li> 

둘째 이벤트 노드

이 결과는 첫번째 단계

<li>a3</li> 
<li>b3</li> 

되어야 있어야, I는

/r/ab/event 
사용

그리고 원하는 결과를 얻을 수 있지만 두 번째 단계에서 혼란스럽고 혼란 스럽습니다. 사용하려고 시도했습니다.

이것은 저 결과 첫 번째 이벤트 노드

<li>a</li> 
<li>b</li> 
<action/> 
<li>a2</li> 
<li>b2</li> 

, 그 결과 두 번째 이벤트 노드

<li>a3</li> 
<li>b3</li> 

제공

.

이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 또한, 나는 술어 내에서 다음 형제 자매를 오용 할 수도 있다고 생각합니다. 문서를 보았습니다, https://www.w3.org/TR/xpath,하지만 그것을 사용하는 방법을 이해하지 못했지만, 누군가 조금 설명 할 수 있습니까? 요청에 따라

답변

0

이 XPath를

/r/ab/event/following-sibling::li[not(preceding-sibling::action)] 

event 요소를 따라 선행 action 요소 형제가없는 모든 li 요소를 선택합니다,

<li>a</li> 
<li>b</li> 
<li>a3</li> 
<li>b3</li> 

.

+0

저에게 효과적입니다. 고마워요! – Cirrus

+0

이유에 대해 알고 계신가요? – Cirrus

+0

나는 "이 이유를 아십니까?"라는 의견을 무시하고 의견을 삭제하는 법을 배우고 있습니다. – Cirrus

관련 문제