Analiza XML DOM
- Poprzednia strona Drzewo węzłów DOM
- Następna strona Ładowanie DOM
Większość przeglądarek ma wbudowany parser XML do odczytywania i operowania na XML.
Parser konwertuje XML na obiekt dostępny dla JavaScript.
Przykład
Przykłady dostarczane przez CodeW3C.com są niezależne od przeglądarki i platformy. Te przykłady mogą działać w wszystkich nowoczesnych przeglądarkach.
Analiza XML
Wszystkie nowoczesne przeglądarki mają wbudowany parser XML do odczytywania i operowania na XML.
Parser czyta XML do pamięci i konwertuje go na obiekt XML DOM dostępny dla JavaScript.
Parser XML Microsoft różni się od parserów w innych przeglądarkach. Parser Microsoft obsługuje ładowanie plików XML i ciągów znaków XML (tekstu), podczas gdy inne przeglądarki używają oddzielnego parsera. Jednak wszystkie parserzy zawierają funkcje do przechodzenia przez drzewo XML, dostępu, wstawiania i usuwania węzłów.
W tym kursie pokażemy, jak tworzyć skrypty, które będą działać w IE i innych przeglądarkach.
Ładowanie XML za pomocą parsera XML Microsoft
Parser XML Microsoft jest wbudowany w Internet Explorer 5 i wyższe wersje.
Poniżej znajduje się fragment JavaScript, który wczytuje dokument XML ("books.xml) Wczytuje analizator:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("books.xml");
Wyjaśnienie kodu:
- Pierwszy wiersz tworzy pusty obiekt dokumentu XML Microsoft.
- Drugie zdanie wyłącza asynchroniczne ładowanie, aby upewnić się, że analizator nie będzie kontynuował wykonywania skryptu przed pełnym załadowaniem dokumentu
- Trzecie zdanie informuje analizator o załadowaniu dokumentu "books.xml"
Poniżej znajduje się fragment JavaScript, który wczytuje napis "txt" do analizatora:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt);
Uwaga:loadXML() Metoda używana do ładowania ciągów znaków (tekstu), a load() Używane do ładowania plików.
Analizator XML w Firefox i innych przeglądarkach
Poniżej znajduje się fragment JavaScript, który wczytuje dokument XML ("books.xml) Wczytuje analizator:
xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");
Wyjaśnienie kodu:
- Pierwsze zdanie tworzy pusty obiekt dokumentu XML
- Drugie zdanie wyłącza asynchroniczne ładowanie, aby upewnić się, że analizator nie będzie kontynuował wykonywania skryptu przed pełnym załadowaniem dokumentu
- Trzecie zdanie informuje analizator o załadowaniu dokumentu "books.xml"
Poniżej znajduje się fragment JavaScript, który wczytuje napis "txt" do analizatora:
parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");
Wyjaśnienie kodu:
- Pierwsze zdanie tworzy pusty obiekt dokumentu XML
- Drugie zdanie informuje analizator o załadowaniu napisu "txt"
Uwaga:Internet Explorer używa loadXML() metoda do analizy ciągu XML, podczas gdy inne przeglądarki używają DOMParser obiekt.
Analiza pliku XML - przykład przechodzący przez różne przeglądarki
Poniżej znajduje się przykład, który ładuje dokument XML ("books.xml) Wczytuje analizator XML:
<html> <body> <script type="text/javascript"> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox, Mozilla, Opera, itp. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load("books.xml"); document.write("xmlDoc is loaded, ready for use"); } catch(e) {alert(e.message)} </script> </body> </html>
Błąd: Access Across Domains
Z powodów bezpieczeństwa, współczesne przeglądarki nie pozwalają na dostęp między domenami.
Oznacza to, że strona oraz plik XML, który próbuje załadować, muszą znajdować się na tym samym serwerze.
Plik XML otwarty przez przykład na CodeW3C.com znajduje się na domenie CodeW3C.com.
Jeśli chcesz użyć powyższego przykładu na swojej stronie internetowej, musisz umieścić plik XML na swoim serwerze. W przeciwnym razie xmlDoc.load() spowoduje błąd "Access is denied".
Analiza ciągu XML - przykład przechodzący przez różne przeglądarki
Poniżej znajduje się kod, który ładuje i analizuje ciąg XML:
<html> <body> <script type="text/javascript"> text="<bookstore>" text=text+"<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; text=text+"</bookstore>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, itp. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} } document.write("xmlDoc is loaded, ready for use"); </script> </body> </html>
Uwaga:Internet Explorer używa metody loadXML() do parsowania ciągów XML, podczas gdy inne przeglądarki używają Obiekt DOMParser.
- Poprzednia strona Drzewo węzłów DOM
- Następna strona Ładowanie DOM