2012-01-27 3 views
1

DefaultHandler2를 사용하여 XML을 파싱하는 데 문제가 있습니다. 내 XML 형식은 다음과 같습니다.Java Node.appendNode 이전 요소 제거

<nodeA> 
    <nodeB></nodeB> 
    <nodeB></nodeB> 
</nodeA> 

XML에 대한 DOM 문서를 만들려고하지만 노드에 대한 Javadoc에 따르면. appendChild는 :

"이 노드의 아이의리스트의 마지막에 newChild 노드를 추가합니다 newChild가 트리 내에 벌써 존재하는 경우,이를 먼저 제거된다.."

따라서 첫 번째 nodeB 요소가 제거되었으므로 Document 클래스를 사용하여 같은 이름의 형제 노드를 추가하는 방법을 궁금합니다. 이것에 대한 정보는 아주 좋을 것입니다, 고마워요!

+0

id (or)와 같은 속성을 추가 할 수 있습니까? 그런 식으로 두 노드를 구별 할 수 있습니까? – kosa

답변

1

Node.appendChild는 유형이 아닌 동일한 인스턴스 인 경우에만 노드를 제거하고 다시 추가합니다. 따라서 동일한 객체를 변경하고 다시 적용하지 않고 매번 자식 노드 유형의 새 인스턴스를 추가해야합니다.

+0

발견 된 노드 메소드가 실제로 작동했지만 Node.getTextContent()가 예상했던 것과 다르게 작동합니다. 실제로 이것이 원래의 질문에 답하는 것처럼 받아 들일 것입니다. – blackbourna