molily: javascript

Beitrag lesen

ich will mit javascript eine xml datei bearbeiten die ich als string habe, gibt es da eine möglichkeit eine art DOM zu benützen?

Ja, indem du den String in ein XML-Dokument parst.
Wie das geht, hängt ganz vom Zielbrowser ab. Manche Browser kennen den DOMParser

var parser = new DOMParser();
var xmlDocument= parser.parseFromString(xmlString, "text/xml");

Im IE muss man mit einem ActiveX-Objekt arbeiten:

var xmlDocument = new ActiveXObject("Microsoft.XMLDOM");
xmlDocument.loadXML(xmlString);

Dann steht dir das DOM über xmlDocument zur Verfügung.

Um mehrere Browser zu unterstützen, nimmst du eine Fähigkeitenabfrage, die beide Ansätze verwendet:

if (window.DOMParser) {
   ... DOMParser verwenden
} else if (window.ActiveXObject) {
   ... IE-Methode
}

var testnode= document.createElement("hui");

Das Element musst du dann natürlich im XML-Dokument erzeugen, nicht im HTML-Dokument (wozu window.document gehört).

xml-string.getElementsByTagName("xml").appendChild(testnode);

getElementsByTagName liefert dir eine Elementliste. Der Liste selbst kannst du kein Element anhängen, nur den einzelnen Knoten in der Liste. Also musst du mit [0] auf das Element darin zugreifen.

var elementliste = xmlDocument.getElementsByTagName("xml");
elementliste[0].appendChild(...);

Wenn xml das oberste Element (Wurzelelement) ist, ginge aber auch einfach:

xmlDocument.documentElement.appendChild(...)

Mathias