PHP XML DOM
- Forrige side XML Expat Parser
- Næste side XML SimpleXML
Den indbyggede DOM parser gør det muligt at håndtere XML-dokumenter i PHP.
Hvad er DOM?
W3C DOM tilbyder en standardmængde objekter og standardgrænseflader til at tilgå og operere HTML- og XML-dokumenter.
W3C DOM deles op i forskellige dele (Core, XML og HTML) og forskellige niveauer (DOM Level 1/2/3):
- Core DOM - Definerer en standardmængde objekter for alle strukturerede dokumenter
- XML DOM - Definerer en standardmængde objekter for XML-dokumenter
- HTML DOM - Definerer en standardmængde objekter for HTML-dokumenter
Hvis du ønsker at lære mere om XML DOM, besøg vores XML DOM-tutorial.
XML parsering
Hvis du skal læse og opdatere - oprette og håndtere - en XML-dokument, har du brug for en XML parser.
Der er to grundlæggende typer XML parserer:
- Træbaseret parser:Denne parser konverterer XML-dokumentet til en træstruktur. Den analyserer hele dokumentet og tilbyder API'er til at tilgå elementerne i træet, såsom dokumentobjektmodellen (DOM).
- Begivenhedsbaseret parser:Ser XML-dokumentet som en række af begivenheder. Når en bestemt begivenhed sker, vil parseren kalde funktioner for at håndtere dem.
DOM parseren er en træbaseret parser.
Se følgende fragment af XML-dokumentet nedenfor:
<?xml version="1.0" encoding="ISO-8859-1"?> <from>John</from>
XML DOM ser XML som en træstruktur:
- Level 1: XML-dokument
- Level 2: Rodkomponent: <from>
- Level 3: Tekstelement: "John"
Installation
DOM XML parseren er en del af PHP-kernen. Der er ingen behov for at installere for at bruge disse funktioner.
XML-fil
Vi vil bruge følgende XML-fil i vores eksempel:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Påmindelse</heading> <body>Glæm ikke mødet!</body> </note>
Indlæsning og output af XML
Vi skal initialisere XML parseren, indlæse XML og skrive den ud:
Eksempel
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); print $xmlDoc->saveXML(); ?>
Udskriften af ovenstående kode:
George John Påmindelse Glæm ikke mødet!
Hvis du ser på kildekoden i din browservindue, vil du se følgende HTML:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Påmindelse</heading> <body>Glæm ikke mødet!</body> </note>
I det ovenstående eksempel oprettes der en DOMDocument-objekt og "note.xml"'s XML indlæses i dette dokumentobjekt.
saveXML() funktionen lægger den interne XML-dokument ind i en streng, så vi kan udskrive den.
Cirkulér XML
Vi skal initialisere XML-parseren, indlæse XML og kør gennem alle elementer i <note>-elementet:
Eksempel
<?php $xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br />"; } ?>
Udskriften af ovenstående kode:
#text = to = George #text = from = John #text = heading = Påmindelse #text = body = Glem ikke mødet! #text =
I det ovenstående eksempel ser du tomme tekstknuder mellem hver element.
Når XML genereres, indeholder det normalt mellemrum mellem noder. XML DOM-parseren behandler dem som almindelige elementer, og hvis du ikke bemærker dem, kan det nogle gange føre til problemer.
Hvis du ønsker at lære mere om XML DOM, besøg vores XML DOM-tutorial.
- Forrige side XML Expat Parser
- Næste side XML SimpleXML