Analizator składni PHP XML DOM
Wbudowany parser DOM umożliwia przetwarzanie dokumentów XML w PHP.
Analizator XML DOM
Parser DOM jest parserem opartym na drzewie.
Spójrz na następującą część dokumentu XML:
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
DOM widzi powyższy XML jako strukturę drzewa:
- Poziom 1: Dokument XML
- Poziom 2: Element główny: <z>
- Poziom 3: Element tekstowy: „Jani”
Instalacja
Funkcje parsera DOM są częścią jądra PHP. Korzystanie z tych funkcji nie wymaga instalacji.
Plik XML
Poniższy plik XML ("note.xml") zostanie użyty w naszym przykładzie:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Ładowanie i wyjście XML
Chcemy zainicjować parser XML, załadować xml i wyprowadzić go:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
Wynikiem powyższego kodu będzie:
Tove Jani Reminder Don't forget me this weekend!
Jeśli wybierzesz opcję „Wyświetl źródło” w oknie przeglądarki, zobaczysz następujący kod HTML:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Powyższy przykład tworzy obiekt DOMDocument-Object i ładuje do niego XML z „note.xml”.
Następnie funkcja saveXML() umieszcza wewnętrzny dokument XML w łańcuchu, dzięki czemu możemy go wypisać.
Pętla przez XML
Chcemy zainicjować parser XML, załadować XML i przejść przez wszystkie elementy elementu <note>:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?>
Wynikiem powyższego kodu będzie:
#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =
W powyższym przykładzie widać, że pomiędzy każdym elementem są puste węzły tekstowe.
Kiedy XML generuje, często zawiera spacje między węzłami. Parser XML DOM traktuje je jak zwykłe elementy i jeśli nie jesteś ich świadomy, czasami powodują problemy.
Jeśli chcesz dowiedzieć się więcej o XML DOM, odwiedź nasz samouczek XML .