2008-09-17 3 views
2

일부 API는 XML 문서의 루트를 가리키는 XmlCursor를 반환합니다. 이 모든 것을 다른 org.w3c.DOM 표현 문서에 삽입해야합니다. DOM 문서에 XmlCursor 내용을 삽입하는 방법

<a> <b> some text </b> </a>

DOM 문서에 XmlCursor의 poiting : 시작시

<foo>

  <someOtherInsertedElement>

    <a> <b> some text </b> </a>

  </someOtherInsertedElement>

</foo>

참고 : document.importNode(cursor.getDomNode()) 아무튼

<foo>

</foo>

내가 원래 DOM 문서를 갖고 싶어 끝에이 같은 변경 작동하지 않음 - 예외가 throw 됨 : NOT_SUPPORTED_ERR : 구현이 요청한 유형의 객체를 지원하지 않습니다. 또는 작동. 이 같은

답변

6

시도 뭔가 : 즉 그래서

Node originalNode = cursor.getDomNode(); 
Node importNode = document.importNode(originalNode.getFirstChild()); 
Node otherNode = document.createElement("someOtherInsertedElement"); 
otherNode.appendChild(importNode); 
document.appendChild(otherNode); 

:

  1. 커서에서 DOM 노드를 가져옵니다. 이 경우 DOMDocument이므로 getFirstChild()를 사용하여 루트 노드를 가져옵니다.
  2. DOMDocument로 가져옵니다.
  3. DOMDocument로 다른 작업을하십시오.
  4. 가져온 노드를 오른쪽 노드에 추가하십시오.

가져 오는 이유는 노드가 항상 주어진 DOMDocument에 "속합니다"라는 것입니다. 원래 노드를 추가하면 예외가 발생합니다.

+0

이 importNode의 실패 : org.w3c.dom.DOMException가 : NOT_SUPPORTED_ERR : 구현은 지원하지 않습니다

Node importNode = document.importNode(originalNode);

이이 문제를 해결 요구 된 오브젝트 또는 조작의 형태 org.apache.xerces.dom.CoreDocumentImpl.importNode (알 수없는 소스) at org.apache.xerces.dom.CoreDocumentImpl.importNode (알 수없는 소스) – Juraj

+0

아. 왜냐하면 DOMDocument를 가져 오기 때문입니다. 나의 나쁜, 나는 그 작은 조각을 놓쳤다. try cursor.getDomNode.getFirstChild() – Sietse

+0

cursor.getDomNode.getFirstChild() 도움이되었습니다. 정말 고마워. pls는 당신의 대답에서 그것을 정정한다 (나는 그것을하기에 충분한 명성이 없다 :]) – Juraj

1

동일한 문제가있었습니다.

은 실패했다 :

Node importNode = document.importNode(originalNode.getFirstChild());

+0

모르겠다. 왜,하지만이 도움이! 감사 – oleh