dom4j를 사용하여 큰 xml 파일을 구문 분석하고 싶습니다. 내가 신경 쓰지 않는 요소를 무시하기 위해 경로 표현식에 대한 이벤트 핸들러를 등록 할 수있는 dom4j의 기능을 사용하고 있습니다. 기능은 여기에서 설명됩니다 : http://dom4j.sourceforge.net/dom4j-1.6.1/faq.html#large-doc.dom4j에서 XML 경로를 지정하십시오.
다음에서 인용 : "이러한 핸들러는 특정 처리기에 등록 된 각 경로의 시작과 끝에서 호출됩니다. 경로의 시작 태그가 발견되면 해당 핸들러의 onStart 메소드가 경로가 끝나면 해당 경로에 등록 된 핸들러의 onEnd 메소드가 호출됩니다.
onStart 및 onEnd 메소드에는 ElementPath 인스턴스가 전달되며,이 인스턴스를 검색하는 데 사용할 수 있습니다 처리기가 메모리 사용을 절약하기 위해 빌드중인 트리를 "제거"하고자하는 경우 핸들러 onEnd() 메서드에서 처리중인 현재 요소의 detach() 메서드를 호출하기 만하면됩니다. "
내 문제는 루트 노드의 모든 자식이 2 가지 방법으로 처리되도록 어떤 경로를 제공해야하는지 모른다는 것입니다.
내 xml 파일은 같은 것입니다 :
내가 경로 것보다 요리사 요소/루트/요리사를 처리하려는 경우
<root .....>
<chef name="" ..../>
<chef name="" ..../>
<recipe name = .... />
<recipe name...../>
....
. 래서 피 요소의 경우 경로는/root/recipe가됩니다.
하지만 do4j에 제공되어야하는 경로가 (onStart(), onEnd()) chef 및 recipe 요소를 처리 할 수 있도록하려면 어떻게해야합니까?
고맙습니다.
XML 파일은 http://sdiwc.us/digitlib/journal_paper.php?paper=00000582.pdf의 증거입니다. –