Heim >Backend-Entwicklung >PHP-Tutorial >Wie greife ich mit SimpleXML auf Elemente in einem benutzerdefinierten Namespace zu?

Wie greife ich mit SimpleXML auf Elemente in einem benutzerdefinierten Namespace zu?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-08 08:31:011020Durchsuche

How to Access Elements in a Custom Namespace Using SimpleXML?

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!

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