PHP XML DOM Ontleder
Die ingeboude DOM-ontleder maak dit moontlik om XML-dokumente in PHP te verwerk.
Die XML DOM-ontleder
Die DOM-ontleder is 'n boom-gebaseerde ontleder.
Kyk na die volgende XML-dokument breuk:
<?xml version="1.0" encoding="UTF-8"?>
<from>Jani</from>
Die DOM sien die XML hierbo as 'n boomstruktuur:
- Vlak 1: XML-dokument
- Vlak 2: Wortelelement: <from>
- Vlak 3: Tekselement: "Jani"
Installasie
Die DOM-ontlederfunksies is deel van die PHP-kern. Daar is geen installasie nodig om hierdie funksies te gebruik nie.
Die XML-lêer
Die XML-lêer hieronder ("note.xml") sal in ons voorbeeld gebruik word:
<?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>
Laai en voer XML uit
Ons wil die XML-ontleder initialiseer, die xml laai en dit uitvoer:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
Die afvoer van die kode hierbo sal wees:
Tove Jani Reminder Don't forget me this weekend!
As jy "Bekyk bron" in die blaaiervenster kies, sal jy die volgende HTML sien:
<?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>
Die voorbeeld hierbo skep 'n DOMDocument-Object en laai die XML vanaf "note.xml" daarin.
Dan plaas die saveXML()-funksie die interne XML-dokument in 'n string, sodat ons dit kan uitvoer.
Loop deur XML
Ons wil die XML-ontleder inisialiseer, die XML laai en deur alle elemente van die <note>-element loop:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item) {
print $item->nodeName . " = " . $item->nodeValue . "<br>";
}
?>
Die afvoer van die kode hierbo sal wees:
#text =
to = Tove
#text =
from = Jani
#text =
heading = Reminder
#text =
body = Don't forget me this weekend!
#text =
In die voorbeeld hierbo sien jy dat daar leë teksnodes tussen elke element is.
Wanneer XML genereer, bevat dit dikwels wit spasies tussen die nodusse. Die XML DOM-ontleder hanteer dit as gewone elemente, en as jy nie daarvan bewus is nie, veroorsaak dit soms probleme.
As jy meer wil leer oor die XML DOM, besoek asseblief ons XML-tutoriaal .