Heim > Artikel > Backend-Entwicklung > Wie greife ich mit SimpleXML von PHP auf Elemente in benutzerdefinierten Namespaces zu?
Namespace-Fallstricke mit SimpleXML von PHP
Beim Parsen von XML-Dokumenten mit SimpleXML von PHP können benutzerdefinierte Namespaces eine Herausforderung darstellen. Betrachten Sie das folgende XML mit einem benutzerdefinierten Namespace:
<code class="xml"><?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au"> <channel> <item> <link>qweqwe</link> <moshtix:genre>asdasd</moshtix:genre> ...</code>
Um auf Elemente innerhalb solcher Namespaces zuzugreifen, ist das Standardverhalten von SimpleXML nicht einfach. So meistern Sie diese Herausforderung:
Lösung: Verwenden Sie „children()“ mit Namespace-Argument
Mit der Methode „children()“ von SimpleXML können Sie Elemente basierend auf Namespaces filtern. Übergeben Sie das Namespace-Präfix und true als zweites Argument, um auch die Namespace-Informationen abzurufen:
<code class="php">$rss = simplexml_load_string(...); foreach ($rss->channel as $channel) { echo 'link: ', $channel->link, "\n"; echo 'genre: ', $channel->children('moshtix', true)->genre, "\n"; }</code>
In diesem Beispiel wäre die Ausgabe:
link: qweqwe genre: asdasd
Mit diesem Ansatz Sie können beim Parsen von XML-Dokumenten mit SimpleXML von PHP effektiv auf Elemente in benutzerdefinierten Namespaces zugreifen und diese nutzen.
Das obige ist der detaillierte Inhalt vonWie greife ich mit SimpleXML von PHP auf Elemente in benutzerdefinierten Namespaces zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!