중첩 된 XML 문서의 일부 요소를 반복하고 싶지만 반복하면서 일부를 트리에서 제거 할 수 있습니다. 가장 좋은 방법은 재귀 적으로 수행하는 것이므로 현재 노드와 관련된 모든 최상위 노드를 선택하는 XPath 쿼리가 필요합니다. // foo [not (ancestor :: foo)]는 문서 수준에서 훌륭하게 작동하지만 상대 쿼리에서이 작업을 수행하는 방법을 파악하려고합니다.XPath 쿼리 - 상대적 최상위 노드 선택
<foo id="1">
<foo id="2" />
<foo id="3">
<foo id="4">
<bar>
<foo id="5">
<foo id="6" />
</foo>
<foo id="7" />
</bar>
</foo>
</foo>
</foo>
현재 노드가 foo # 3 인 경우 foo # 4 만 선택하려고합니다. 현재 노드가 foo # 4 일 때 나는 foo # 5와 foo # 7 만 선택하려고합니다.
나는 현재 노드의 임의의 하위 노드 foo 노드를 선택하려고하지만 현재 노드와 내가 선택하는 노드 사이에 조상 foo 노드가없는 것으로 생각합니다. 내 수수께끼는 우리가 이미 foo 노드 안에 있다면, (ancestor :: foo) 도움이되지 않는다는 것입니다.
답변을 얻었습니까? –
다른 해결책을 찾았다 고 생각합니다. 나는 1 년 넘게이 프로젝트에 참여하지는 않았으므로, 내가 무엇을하고 있는지 잘 모르겠다. ... – John