"재분석"하고 싶은 복잡한 XML 트리가 있습니다. 내가 원하는 것은 주어진 속성을 가진 모든 객체를 얻는 것입니다 ("type"이라고합시다). 즉, type 속성을 가진 요소 만 트리 구조를 다시 만들고 싶다는 뜻입니다. 또한 (이것이 내가 XSLT를 사용할 수없는 이유입니다.) 새로 생성 된 객체 (요소가있는 요소)를 기본 XML 트리에서 Node (Element)에 대한 참조로 놓아야합니다.XML 트리 단순화 - 요소 간 관계 가져 오기
나는 compareDocumentPosition에게 방법을 확인하지만하지 트리 관계에 선 위치에서만 기지,
2 단계에서 무슨 뜻인지 모르겠지만 전반적인 아이디어는 괜찮아 보입니다. 유일한 질문은 질문입니다 - XPath NodeSet 결과가 잘 정렬됩니까? 내 작업은 좀 더 복잡합니다. 실제로는 왼쪽의 노드에 대한 참조가있는 사용자 정의 객체를 사용하여 오른쪽에 표시 한 트리를 다시 만들어야합니다. 트리를 다시 만드는 것은 내 개체가 트리 항목 자체임을 의미합니다 (parentNode + childNodes). 따라서 XML 노드를 기반으로하는 사용자 지정 개체를 생성하려면 부모가 이미 존재하는지 확인해야합니다. –
하지만 주어진 노드 (예 : 언급 한 집합에서 가져온)가 어떤 노드가 그의 실제 부모 (주어진 특성을 가진 첫 번째 부모)인지를 알려주는 XPath 쿼리가 있다면 모든 것이 더 간단해질 것입니다. 이 쿼리가 존재합니까? –
흠, 예, 'ancestor :: * [@ type] [1]', 즉'type '속성을 가진'가장 가까운 '조상이됩니다 –