2012-09-03 6 views
0

java xml 파일에서 appendchild를 사용하여 연결 노드에 요소를 추가하려고합니다. 기존 서버 노드를 새로운 값으로 바꾸고 싶었지만 그런 일이 일어나지 않았습니다.org.w3c.dom 노드 appendChild (노드 newChild)가 기존 요소를 제거하지 않습니다.

기존 노드가 제거 될 것이라고 in the documentation for this function을 참조하십시오.

win2k8

+1

코드를 보여 주시겠습니까? 특히 노드가 어떻게 생성되는지에 달려 있습니다. – JTMon

+0

당신은 지금까지 어떤 시도를 했습니까? 소스 코드를 보여 주시겠습니까?. – Ami

답변

0

javadoc는 말한다 :

이 노드의 아이의리스트의 말미에 노드 newChild를 추가합니다. newChild이 이미 트리에 있으면 먼저 제거됩니다.

동일한 이름의 태그가 대체된다는 의미는 아닙니다. 즉, Node 객체는 이미 부모 내부에있는 경우 먼저 제거되며 XML 태그가 아니라 부모에 이미 추가 된 Node에 대한 참조를 전달하는 것입니다.

기존 XML 요소를 자신의 것으로 대체하려면 먼저 NodeList returned form getChildNodes()을 반복하여 찾은 다음 removeChild(node)으로 원치 않는 요소를 제거하는 것이 좋습니다.

+0

확인. 그래서 모든 자식 노드를 통해 동일한 태그를 검색 한 다음 대체해야합니다. 그런 다음 동일한 노드를 두 번 추가하는 예외적 인 경우를 제외하고 appendChild의 중복 검사는 거의 사용되지 않습니다. – Praveen

관련 문제