Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

XML String browserunabhängig mit Javascript parsen

Manchmal hat man ein Problem, und wenn man es dann gelöst hat, ist die Lösung so ein­fach, dass man es fast nicht glau­ben mag. So ging es mir mit fol­gen­der Aufgabe:

Gegeben ist ein String, der ein XML Document reprä­sen­tiert:

<books>
<book author="Meier">Lexikon der Meierei</book>
<book author="Muster">Patterns in der Schneiderstube</book>
</books>

Diesen String möchte man (mög­lichst brow­ser­un­ab­hän­gig, wenigs­tens soll es aber für Internet Explorer und Firefox funk­tio­nie­ren) per Javascript in ein XML DOM Object par­sen, um die­ses dann, wie auch immer, wei­ter zu ver­wen­den. Und das geht ganz ein­fach so:

func­tion MyParseXml(xmlString)
{
var xmlDoc;
//for IE
if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlString);
}
//for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
var par­ser = new DOMParser();
xmlDoc = parser.parseFromString(xmlString,"text/xml");
}
var x=xmlDoc.getElementsByTagName('book'); //oder wasau­chim­mer
}

Fertig! 🙂

Related Posts

Browserunabhängig hört sich gut an. Aber wenn über die Verwendung von ActiveX alle Linux-Systeme, alle Apple-Systeme und alle Android-Systeme ohne­hin aus­ge­schlos­sen wer­den, kann ich auch gleich für den IE ent­wi­ckeln. Wo soll da hier der Mehrwert sein?

Avatar Dorrit Riemenschneider

Korrekt, die Verwendung von ActiveX schränkt die Verfügbarkeit auf Windows-Systeme ein – aller­dings gibt es auch dort eine recht große Browser-Vielfalt – ich selbst ver­wende z.B. den IE eher sel­ten. Man sollte aber auf jeden Fall auch mit betrach­ten, dass die­ser Beitrag mehr als 6 Jahre alt ist. Mobile Endgeräte unter Apple und Android waren zu die­ser Zeit noch nicht so prä­sent, daher auch nicht im Fokus.

Comments are closed.

Pin It on Pinterest