XML 문서를 탐색하기 위해 다음 코드 구조를 사용해 왔으며 꽤 잘 작동합니다.
import org.w3c.dom.traversal.*;
...
private static SomeReturnType traverse(Document doc) {
DocumentTraversal dt = (DocumentTraversal) doc; // line-a
NodeIterator i = dt.createNodeIterator(doc, NodeFilter.SHOW_ELEMENT, null, false);
Node node = i.nextNode();
while (node != null) {
// do stuff
node = i.nextNode();
}
return ...
}
그러나 문서 전체가 아니라 문서의 임의의 XML 요소에서 순회를 허용하도록 위의 내용을 일반화하는 방법은 무엇입니까? 이것은 이론적으로 XML에서 문서가 가장 바깥 쪽 요소로 간단하게 보일 수있는 것처럼 쉽지만 API는 직관적이지 않습니다.
즉, Element
또는 a Node
를 인수로 취하는 위의 함수를 어떻게 작성 하시겠습니까?
최신 정보
해결책은 다음과 같습니다.
private static SomeReturnType traverse(Node rootNode) {
DocumentTraversal dt = (DocumentTraversal) rootNode.getOwnerDocument();
NodeIterator i = dt.createNodeIterator(rootNode, NodeFilter.SHOW_ELEMENT, null, false);
Node node = i.nextNode();
while (node != null) {
// do stuff
node = i.nextNode();
}
return ...
}
당신의 방법은 걸릴 가지고 Node
대신을 Document
. 공지 DocumentTraversal
합니다 Node
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다