Andi: xml aus textfeld in dom

Hallo!

Ich habe ein Textfeld mit XML. Ich lese es aus:

var str = document.getElementById('messageform:xml').value;
var content = document.createElement("root");
content.innerHTML = str;

Das Problem ist, dass innerHTML als Text ins DOM geschrieben wird. Daher gibt content.firstChild.innerHTML undefined.

Was mache ich falsch?

  1. Hallo,

    Das Problem ist, dass innerHTML als Text ins DOM geschrieben wird. Daher gibt content.firstChild.innerHTML undefined.
    Was mache ich falsch?

    wenn Du auf den dynamisch in #content hineingeschriebenen Inhalt mit DOM-Funktionen zugreifen willst, dann mußt Du ihn auch als DOM-Knoten einfügen (siehe http://de.selfhtml.org/javascript/objekte/node.htm).

    In Deinem aktuellen Ansatz aber geht sozusagen die "Baumhaftigkeit" des XML verloren, das Du einfügst, da innerHTML nur einen String liefert.

    So long,
    Mr. Horse

    --
    "No, Sir, I don't like it."
    1. Ja gut, aber wie mache ich das?

      Hallo,

      Das Problem ist, dass innerHTML als Text ins DOM geschrieben wird. Daher gibt content.firstChild.innerHTML undefined.
      Was mache ich falsch?

      wenn Du auf den dynamisch in #content hineingeschriebenen Inhalt mit DOM-Funktionen zugreifen willst, dann mußt Du ihn auch als DOM-Knoten einfügen (siehe http://de.selfhtml.org/javascript/objekte/node.htm).

      In Deinem aktuellen Ansatz aber geht sozusagen die "Baumhaftigkeit" des XML verloren, das Du einfügst, da innerHTML nur einen String liefert.

      So long,
      Mr. Horse

      1. Hallo,

        Ja gut, aber wie mache ich das?

        oh je, ich sehe gerade, daß Du Dir das XML ja schon als String aus einem Texteingabefeld herausholst - das heißt, die "Baumhaftigkeit" ist nie gegeben.
        Hmm - dann müßtest Du diesen XML-Strimg nehmen und "parsen", also daraus einen DOM-Baum bauen.
        Dieser Link sieht in diesem Zusammenhang sehr hilfreich aus: http://www.w3schools.com/dom/dom_nodes_traverse.asp.

        So long,
        Mr. Horse

        --
        "No, Sir, I don't like it."
        1. Hallo,

          Ja gut, aber wie mache ich das?

          oh je, ich sehe gerade, daß Du Dir das XML ja schon als String aus einem Texteingabefeld herausholst - das heißt, die "Baumhaftigkeit" ist nie gegeben.
          Hmm - dann müßtest Du diesen XML-Strimg nehmen und "parsen", also daraus einen DOM-Baum bauen.
          Dieser Link sieht in diesem Zusammenhang sehr hilfreich aus: http://www.w3schools.com/dom/dom_nodes_traverse.asp.

          So long,
          Mr. Horse

          Ja, sehe ich ein. Ich dachte, innerHTML würde den Parser aufrufen. Na dann, vielen Dank!

  2. Moin!

    Bist Du, Andi, zufällig der Andreas, der hier schon mal was sehr ähnliches gefragt hat?

    -- Skeeve