Heim  >  Artikel  >  Backend-Entwicklung  >  Wie greife ich mit SimpleXML von PHP auf Elemente in benutzerdefinierten Namespaces zu?

Wie greife ich mit SimpleXML von PHP auf Elemente in benutzerdefinierten Namespaces zu?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 03:47:02536Durchsuche

How to Access Elements Within Custom Namespaces Using PHP's SimpleXML?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn