DOM XML PHP
- Poprzednia strona Parser XML Expat
- Następna strona SimpleXML XML
Wbudowany parser DOM umożliwia przetwarzanie dokumentów XML w PHP.
Co to jest DOM?
W3C DOM dostarcza standardowe zestawy obiektów dla dokumentów HTML i XML oraz standardowe interfejsy do dostępu i operacji na tych dokumentach.
W3C DOM jest dzielony na różne części (Core, XML i HTML) i różne poziomy (DOM Level 1/2/3):
- Core DOM - Zdefiniowane standardowe zestawy obiektów dla dowolnych strukturyzowanych dokumentów
- XML DOM - Zdefiniowane standardowe zestawy obiektów dla dokumentów XML
- HTML DOM - Zdefiniowane standardowe zestawy obiektów dla dokumentów HTML
Jeśli chcesz dowiedzieć się więcej o XML DOM, odwiedź naszą Kurs XML DOM.
Przetwarzanie XML
Aby czytać i aktualizować - tworzyć i przetwarzać - dokument XML, potrzebujesz parsera XML.
Istnieją dwa podstawowe typy parserów XML:
- Parser oparty na drzewie:Ten parser konwertuje dokument XML na strukturę drzewiastą. Analizuje całe dokument, i dostarcza API do dostępu do elementów w drzewie, np. dokumentu obiektowego (DOM).
- Parser oparty na wydarzeniach:Traktuje dokument XML jako serię wydarzeń. Kiedy zdarzenie się dzieje, parser wywołuje funkcje do jego przetwarzania.
Parser DOM jest parserem opartym na drzewie.
Zobacz poniższy fragment dokumentu XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>John</from>
XML DOM traktuje XML jako strukturę drzewiastą:
- Poziom 1: Dokument XML
- Poziom 2: Korzeń: <from>
- Poziom 3: Element tekstowy: "John"
Instalacja
Funkcje parsera DOM XML są częścią rdzenia PHP. Nie wymaga instalacji, aby można je było używać.
Plik XML
W naszym przykładzie użyjemy poniższego pliku XML:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
Ładowanie i wyświetlanie XML
Musimy zainicjalizować parser XML, załadować XML i go wyświetlić:
Przykład
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
Wyjście powyższego kodu:
George John Reminder Don't forget the meeting!
Jeśli spojrzysz na kod źródłowy w oknie przeglądarki, zobaczysz poniższy HTML:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
W powyższym przykładzie utworzono obiekt DOMDocument i załadowano do niego XML z pliku "note.xml".
Funkcja saveXML() umieszcza wewnętrzny dokument XML w jednej zmiennej, tak że możemy go wyjść.
Przejście przez XML
Musimy zainicjalizować parser XML, załadować XML i przejść przez wszystkie elementy <note>:
Przykład
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br />"; } ?>
Wyjście powyższego kodu:
#text = to = George #text = from = John #text = heading = Przypomnienie #text = body = Nie zapomnij o spotkaniu! #text =
W powyższym przykładzie widzisz puste węzły tekstowe między każdym elementem.
Kiedy XML jest generowany, zazwyczaj zawiera białe znaki między węzłami. Parser XML DOM traktuje je jako zwykłe elementy, a jeśli ich nie zauważysz, mogą powodować problemy.
Jeśli chcesz dowiedzieć się więcej o XML DOM, odwiedź naszą Kurs XML DOM.
- Poprzednia strona Parser XML Expat
- Następna strona SimpleXML XML