Atrybuty i metody XML DOM
- Poprzednia strona Ładowanie DOM
- Następna strona Dostęp do węzłów DOM
Atrybuty i metody definiują interfejs programowania XML DOM.
Przykład
Poniższy przykład używa pliku XML books.xml.
Funkcja loadXMLDoc()Znajduje się w zewnętrznym JavaScript, do ładowania plików XML.
Funkcja loadXMLString()Znajduje się w zewnętrznym JavaScript, do ładowania ciągów XML.
Interfejs programowania
DOM symuluje XML jako serię interfejsów węzłów. Można do nich dostęp poprzez JavaScript lub inne języki programowania. W tym kursie używamy JavaScript.
Interfejs programowania DOM jest definiowany przez zestaw standardowych atrybutów i metod.
AtrybutyCzęsto używa się w sposób "co jest czymś" (na przykład nazwa węzła to "book").
MetodaZwykle używane w formie "co zrobić z czymś" (np. usunięcie węzła "book").
Atrybuty XML DOM
Niektóre typowe atrybuty DOM:
- x.nodeName - Nazwa x
- x.nodeValue - Wartość x
- x.parentNode - Rodzic x
- x.childNodes - Podwęzła x
- x.attributes - Węzły atrybutów x
Komentarz:W powyższej liście, x jest obiektem węzła.
Metody XML DOM
- x.getElementsByTagName(name) - Pobierz wszystkie elementy z oznaczeniem name
- x.appendChild(node) - Wstaw podwęzeł do x
- x.removeChild(node) - Usuń podwęzeł z x
Komentarz:W powyższej liście, x jest obiektem węzła.
Przykład
JavaScript do pobierania tekstu z elementu <title> z pliku books.xml:
txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue
Po wykonaniu tego zdania, wartość zapisana w txt to "Harry Potter".
Wyjaśnienie:
- xmlDoc - XML DOM utworzony przez parser
- getElementsByTagName("title")[0] - Pierwszy element <title>
- childNodes[0] - Pierwszy podwęzeł elementu <title>
- nodeValue - Wartość węzła (tekst sam w sobie)
W powyższym przykładzie, getElementsByTagName jest metodą, a childNodes i nodeValue są atrybutami.
Analiza pliku XML - przykład wielo-przeglądarkowy
Poniższy fragment kodu używa funkcji loadXMLDoc, aby books.xml Wczytaj parser XML i wyświetl dane pierwszego book:
xmlDoc=loadXMLDoc("books.xml"); document.write(xmlDoc.getElementsByTagName("title")) [0].childNodes[0].nodeValue); document.write("<br />"); document.write(xmlDoc.getElementsByTagName("author")) [0].childNodes[0].nodeValue); document.write("<br />"); document.write(xmlDoc.getElementsByTagName("year")) [0].childNodes[0].nodeValue);
Wynik:
Harry Potter J K. Rowling 2005
W powyższym przykładzie, dla każdego węzła tekstowego używamy childNodes[0], nawet jeśli każdy element ma tylko jeden węzeł tekstowy. Jest to spowodowane tym, że metoda getElementsByTagName() zawsze zwraca tablicę.
Analiza ciągu XML - przykład wielo-przeglądarkowy
Poniższy kod ładuje i解析uje ciąg XML:
Poniższy fragment kodu używa funkcji loadXMLString, aby books.xml Wczytaj parser XML i wyświetl dane pierwszego book:
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>"; xmlDoc=loadXMLString(text); document.write(xmlDoc.getElementsByTagName("title")) [0].childNodes[0].nodeValue); document.write("<br />"); document.write(xmlDoc.getElementsByTagName("author")) [0].childNodes[0].nodeValue); document.write("<br />"); document.write(xmlDoc.getElementsByTagName("year")) [0].childNodes[0].nodeValue);
Wynik:
Harry Potter J K. Rowling 2005
- Poprzednia strona Ładowanie DOM
- Następna strona Dostęp do węzłów DOM