Heim >Backend-Entwicklung >PHP-Tutorial >Wie greife ich mit SimpleXML auf Elemente in einem benutzerdefinierten Namespace zu?
Umgang mit benutzerdefinierten Namespaces in SimpleXML
Frage:
In einem XML-Dokument mit einem benutzerdefinierten Wenn Sie einen Namespace verwenden, können beim Parsen von SimpleXML keine Elemente aus diesem Namespace verfügbar gemacht werden. Wie kann das gelöst werden?
Antwort:
Um mit SimpleXML auf benutzerdefinierte Namespace-Elemente zuzugreifen, ist es notwendig, sich zu registrieren und das Namespace-Präfix zu verwenden. Dies wird normalerweise mithilfe der Funktion „children()“ mit dem Namespace-Präfix als erstem Argument und „true“ als zweitem Argument erreicht, um den rekursiven Abgleich zu ermöglichen:
<code class="php">$rss = simplexml_load_string( '<?xml version="1.0" encoding="utf-8"?> <rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au"> <channel> <link>qweqwe</link> <moshtix:genre>asdasd</moshtix:genre> </channel> </rss>' ); foreach ($rss->channel as $channel) { echo 'link: ', $channel->link, "\n"; echo 'genre: ', $channel->children('moshtix', true)->genre, "\n"; }</code>
Dies wird ausgegeben:
link: qweqwe genre: asdasd
Durch die Registrierung des Namespace-Präfixes wird es möglich, auf benutzerdefinierte Namespace-Elemente zuzugreifen und deren Werte mithilfe von children() abzurufen.
Das obige ist der detaillierte Inhalt vonWie greife ich mit SimpleXML auf Elemente in einem benutzerdefinierten Namespace zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!