PHP SimpleXML

SimpleXML håndterer de mest almindelige XML-opgaver, mens andre opgaver overlades til andre udvidelser.

Hvad er SimpleXML?

SimpleXML er en ny funktion i PHP 5. Det er en bekvem måde at få fat i elementegenskaber og tekst, når man kender XML-dokumentets layout.

I modsætning til DOM eller Expat-parser kan SimpleXML læse tekstdata fra elementer med kun nogle få linjer kode.

SimpleXML kan konvertere et XML-dokument til et objekt, såsom:

  • Element - konverteres til SimpleXMLElement-objekt. Når der er flere elementer på samme niveau, placeres de i en array.
  • Egenskaber - tilgås gennem en tilknyttet array, hvor indekserne svarer til egenskabsnavnene.
  • Elementdata - tekstdata fra elementet konverteres til en streng. Hvis et element har flere tekstknuder, arrangeres de efter deres opdagelsesreol.

Når du udfører grundlæggende opgaver som nedenfor, er SimpleXML meget hurtig at bruge:

  • Læs en XML-fil
  • Hent data fra en XML-streng
  • Rediger tekstknuder eller egenskaber

Men når det kommer til avanceret XML-behandling, såsom navnerum, er det bedst at bruge Expat-parser eller XML DOM.

Installation

Fra PHP 5.0 og fremefter er SimpleXML en del af PHP-kernen. Der er ingen installation nødvendig for at bruge disse funktioner.

Brug SimpleXML

Her er et XML-fil eksempel:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Påmindelse</heading>
<body>Don't forget the meeting!</body>
</note>

Vi planlægger at udskrive navnene og dataene for elementerne i den ovenstående XML-fil.

Dette er det, der skal gøres:

  1. Indlæs XML-fil
  2. Få navnet på det første element
  3. Brug children() funktion til at oprette en løkke, der udløses på hver underknudele
  4. Udskriv hver underknudelelements navn og data

Eksempel

<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>

Udskrift af ovenstående kode:

note
til: George
fra: John
heading: Påmindelse
body: Glem ikke mødet!

Mere information om PHP SimpleXML

For mere information om PHP SimpleXML, besøg vores PHP SimpleXML referencehåndbog.