PHP XML DOM Parser
Vestavěný DOM parser umožňuje zpracovávat XML dokumenty v PHP.
XML DOM Parser
Analyzátor DOM je stromový analyzátor.
Podívejte se na následující zlomek dokumentu XML:
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
DOM vidí XML výše jako stromovou strukturu:
- Úroveň 1: Dokument XML
- Úroveň 2: Kořenový prvek: <from>
- Úroveň 3: Textový prvek: "Jani"
Instalace
Funkce analyzátoru DOM jsou součástí jádra PHP. K použití těchto funkcí není potřeba žádná instalace.
Soubor XML
V našem příkladu bude použit níže uvedený soubor XML („note.xml“):
<?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>
Načtení a výstup XML
Chceme inicializovat XML parser, načíst xml a vypsat jej:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
Výstupem výše uvedeného kódu bude:
Tove Jani Reminder Don't forget me this weekend!
Pokud v okně prohlížeče vyberete "Zobrazit zdroj", zobrazí se následující 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>
Výše uvedený příklad vytvoří objekt DOMDocument-Object a načte do něj XML z "note.xml".
Potom funkce saveXML() vloží interní dokument XML do řetězce, abychom jej mohli vypsat.
Smyčka přes XML
Chceme inicializovat analyzátor XML, načíst XML a procházet všemi prvky prvku <note>:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?>
Výstupem výše uvedeného kódu bude:
#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =
Ve výše uvedeném příkladu vidíte, že mezi každým prvkem jsou prázdné textové uzly.
Při generování XML často obsahuje mezery mezi uzly. Analyzátor XML DOM s nimi zachází jako s běžnými prvky, a pokud si jich nejste vědomi, někdy způsobují problémy.
Pokud se chcete dozvědět více o XML DOM, navštivte prosím náš XML tutoriál .