Frage

Einige API gibt mir auf Wurzel von XML-Dokument XmlCursor zeigt. Ich brauche all dies in eine andere org.w3c.dom dargestellt Dokument einzufügen.

Beim Start: XmlCursor poiting auf

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

DOM-Dokument:

<foo>

</foo>

Am Ende möchte ich original DOM-Dokument wie folgt geändert haben:

<foo>

  <someOtherInsertedElement>

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

  </someOtherInsertedElement>

</foo>

Hinweis: document.importNode(cursor.getDomNode()) funktioniert nicht - Ausnahme ausgelöst. NOT_SUPPORTED_ERR: Die Umsetzung nicht die angeforderte Art von Objekt oder Operation nicht unterstützt

War es hilfreich?

Lösung

Versuchen Sie etwas wie folgt aus:

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

Also mit anderen Worten:

  1. Holen Sie sich den DOM-Knoten aus dem Cursor. In diesem Fall ist es ein DOMDocument, so tut getFirstChild (), um den Root-Knoten zu erhalten.
  2. Importieren in das DOMDocument.
  3. Sie andere Sachen mit dem DOMDocument.
  4. Fügen Sie den importierten Knoten auf der rechten Seite Knoten.

Der Grund, zu importieren, ist, dass ein Knoten immer zu einem bestimmten DOMDocument „gehört“. den ursprünglichen Knoten gerade hinzufügen, würde Ausnahmen führen.

Andere Tipps

Ich habe das gleiche Problem.

Dies versagt:

Node importNode = document.importNode(originalNode);

Das das Problem behoben:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top