Różnice w przeglądarkach XML DOM
- Poprzednia strona Przechodzenie przez węzły DOM
- Następna strona Lokalizacja węzłów DOM
Różne przeglądarki traktują węzły tekstowe w XML DOM w różny sposób.
Przykład
Poniższy przykład używa pliku XML books.xml.
Funkcja loadXMLDoc()Funkcja, znajdująca się w zewnętrznym JavaScriptie, używana do ładowania plików XML.
- W IE i innych przeglądarkach wynik jest inny.
- Wyświetlenie długości listy węzłów
- Zignoruj puste węzły między węzłami
- W tym przykładzie sprawdzany jest nodeType węzła, a tylko węzły elementowe są przetwarzane.
Różnice między przeglądarkami w analizie DOM
Wszystkie współczesne przeglądarki wspierają specyfikację W3C DOM.
Jednak różnice między przeglądarkami są istotne. Kluczowe różnice obejmują dwa punkty:
- Metody ładowania XML
- Sposoby przetwarzania białych znaków i wierszy
w "Analiza XML DOM” To rozdział wyjaśnia różne metody ładowania XML.
W tym rozdziale omówimy różne sposoby przetwarzania białych znaków i wierszy.
DOM - białe znaki i wiersze
XML często zawiera wiersze lub białe znaki między węzłami. To jest często spotykane przy użyciu prostych edytorów (np. Notatnika).
Poniższy przykład (edytowany w Notatniku) zawiera CR/LF między wierszami oraz dwa spacje przed każdym podwęzłem:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Firefox oraz inne przeglądarki traktują puste białe przestrzenie lub wiersze jako węzły tekstowe, podczas gdy Internet Explorer nie robi tego.
Poniższy fragment kodu pokazuje, ile podwęzłów ma korzeń (books.xml):
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; document.write("Liczba podwęzłów: " + x.length);
Przykład wyjaśnienia:
- Przy użyciu loadXMLDoc() Wprowadź "books.xml"Wczytaj do xmlDoc"
- Pobierz podwęzły elementu korzenia
- Wyświetl liczbę podwęzłów
Wynik zależy od używanego przeglądarki. Firefox wyświetla 9, a IE wyświetla 4.
Zignoruj puste węzły między węzłami
Aby zignorować puste węzły tekstowe między węzłami elementu, należy sprawdzić typ węzła. Typ węzła elementu to 1:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {// przetwarzaj tylko węzły elementu document.write(x[i].nodeName); document.write("<br />"); } }
Przykład wyjaśnienia:
- Przy użyciu loadXMLDoc() Wprowadź "books.xml"Wczytaj do xmlDoc"
- Pobierz podwęzły elementu korzenia
- Sprawdź typ węzła każdego podwęzła. Jeśli typ węzła to "1", to jest to węzeł elementu
- Poprzednia strona Przechodzenie przez węzły DOM
- Następna strona Lokalizacja węzłów DOM