XML DOM - Browserunterschiede
- Vorherige Seite DOM-Nodes durchsuchen
- Nächste Seite DOM-Nodes定位
Die verschiedenen Browser behandeln die Textknoten in der XML DOM auf unterschiedliche Weise.
Beispiel
Nachfolgendes Beispiel verwendet eine XML-Datei books.xml.
Funktion loadXMLDoc(), die sich im externen JavaScript befindet und zur Ladung von XML-Dateien verwendet wird.
- Länge der Knotenliste anzeigen
- In diesem Beispiel wird die Länge einer Knotenliste angezeigt. Das Ergebnis ist in IE und anderen Browsern unterschiedlich.
- Ignorieren Sie leere Textknoten zwischen Knoten
- In diesem Beispiel wird der nodeType des Knotens überprüft und nur Elementknoten behandelt.
Browserunterschiede bei der DOM-Parserung
Alle modernen Browser unterstützen das W3C DOM Standard.
Allerdings gibt es Unterschiede zwischen den Browsern. Wichtige Unterschiede gibt es zwei Punkte:
- Methoden zur Ladung von XML
- Methoden zur Verarbeitung von Leerzeichen und Zeilenumbrüchen
In „XML DOM auflösenIn diesem Abschnitt wurde bereits die verschiedenen Methoden zur Ladung von XML erläutert.
In diesem Abschnitt erläutern wir verschiedene Methoden zur Verarbeitung von Leerzeichen und Zeilenumbrüchen.
DOM - Leerzeichen und Zeilenumbrüche
XML enthält oft Zeilenumbrüche oder Leerzeichen zwischen Knoten. Dies ist eine häufige Situation, wenn einfache Editor (wie Notepad) verwendet werden.
Nachfolgendes Beispiel (bearbeitet in Notepad) enthält CR/LF zwischen den Zeilen und zwei Leerzeichen vor jedem Unter knoten:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Firefox und einige andere Browser behandeln leere Leerzeichen oder Zeilenumbrüche als Textknoten, während Internet Explorer dies nicht tut.
Der folgende Code-Abschnitt zeigt, wie viele Unter-Knoten der Wurzelknoten (von books.xml) hat:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; document.write("Anzahl der Unter-Knoten: " + x.length);
Beispiel erläutert:
- Durch die Nutzung loadXMLDoc() Das "books.xml"In xmlDoc laden
- Erhalten Sie die Unter-Knoten des Wurzel-Knotens
- Zahl der Unter-Knoten ausgeben
Das Ergebnis hängt vom verwendeten Browser ab. Firefox gibt 9 aus, während IE 4 ausgibt.
Ignorieren Sie leere Textknoten zwischen Knoten
Um leere Textknoten zwischen elementaren Knoten zu ignorieren, ist es erforderlich, den Knoten-Typ zu überprüfen. Der Typ des elementaren Knotens ist 1:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {// nur elementare Knoten verarbeiten document.write(x[i].nodeName); document.write("<br />"); } }
Beispiel erläutert:
- Durch die Nutzung loadXMLDoc() Das "books.xml"In xmlDoc laden
- Erhalten Sie die Unter-Knoten des Wurzel-Knotens
- Überprüfen Sie den Knoten-Typ jedes Unter-Knotens. Wenn der Knoten-Typ "1" ist, dann ist es ein Elementknoten
- Vorherige Seite DOM-Nodes durchsuchen
- Nächste Seite DOM-Nodes定位