XML Objekt - Element mit bestimmtem Attribut und Attributwert "ansprechen"
ebody
- php
- xml
Hallo,
wie kann man auf ein Element mit einem bestimmtem Attribut und Attributwert zugreifen? Ich habe schon einige Dinge probiert, aber keine funktioniert.
Beispiel:
XML - file.xml:
<verzeichnis>
<titel>Wikipedia Städteverzeichnis</titel>
<eintrag name="Hörbuch">
<stichwort>Genf</stichwort>
<eintragstext>Genf ist der Sitz von ...</eintragstext>
</eintrag>
<eintrag name="Buch">
<stichwort>Köln</stichwort>
<eintragstext>Köln ist eine Stadt, die ...</eintragstext>
</eintrag>
</verzeichnis>
PHP:
$xmlFile = "file.xml";
if($xml = simplexml_load_file($xmlFile)){
// $xmlValue = $xml->verzeichnis->eintrag->attributes("name,"Buch")->stichwort;
// $xmlValue = $xml->verzeichnis->eintrag->attributes("name=Buch")->stichwort;
// $xmlValue = $xml->verzeichnis->eintrag->attributes({name="Buch"})->stichwort;
// $xmlValue = $xml->verzeichnis->eintrag[name="Buch"]->stichwort;
// $xmlValue = $xml->verzeichnis->eintrag[{name="Buch"}]->stichwort;
// $xmlValue = $xml->verzeichnis->eintrag["name"="Buch"]->stichwort;
// $xmlValue = $xml->verzeichnis->eintrag["name=Buch"]->stichwort;
echo $xmlValue;
}
Gruß ebody
Tach!
wie kann man auf ein Element mit einem bestimmtem Attribut und Attributwert zugreifen?
Entweder durch alle Atribute laufen und selbst filtern oder eine XPath-Query absetzen.
Ich habe schon einige Dinge probiert, aber keine funktioniert.
Im Allgemeinen funktionieren nur die Dinge, die im Handbuch beschrieben sind und keine Phantasiesyntax.
dedlfix.
@@dedlfix
Ich habe schon einige Dinge probiert, aber keine funktioniert.
Im Allgemeinen funktionieren nur die Dinge, die im Handbuch beschrieben sind und keine Phantasiesyntax.
„2 Stunden ausprobieren können Ihnen 10 Minuten Handbuchlesen sparen.“ —Linda, 231
LLAP 🖖
Hi,
$xmlFile = "file.xml"; if($xml = simplexml_load_file($xmlFile)){ // $xmlValue = $xml->verzeichnis->eintrag->attributes("name,"Buch")->stichwort; // $xmlValue = $xml->verzeichnis->eintrag->attributes("name=Buch")->stichwort; // $xmlValue = $xml->verzeichnis->eintrag->attributes({name="Buch"})->stichwort; // $xmlValue = $xml->verzeichnis->eintrag[name="Buch"]->stichwort; // $xmlValue = $xml->verzeichnis->eintrag[{name="Buch"}]->stichwort; // $xmlValue = $xml->verzeichnis->eintrag["name"="Buch"]->stichwort; // $xmlValue = $xml->verzeichnis->eintrag["name=Buch"]->stichwort; echo $xmlValue; }
War das nicht so, daß $xml da schon das Wurzelelement ist?
Zugriff wäre dann $xml->eintrag…
cu,
Andreas a/k/a MudGuard
Hallo ebody,
wie kann man auf ein Element mit einem bestimmtem Attribut und Attributwert zugreifen? Ich habe schon einige Dinge probiert, aber keine funktioniert.
XPath-Ansatz:
$xmlValue = $xml->xpath("eintrag[@name='Buch']/stichwort"); // Array
echo $xmlValue[0]; // Köln
Grüße,
Thomas