Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mit SimpleXML auf XML-Knoten mit Doppelpunkten zugreifen?

Wie kann ich mit SimpleXML auf XML-Knoten mit Doppelpunkten zugreifen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-19 00:14:13796Durchsuche

How Can I Access XML Nodes with Colons Using SimpleXML?

Zugriff auf XML-Knoten mit Doppelpunkten mithilfe von Simple XML

In XML-Dokumenten werden Namespaces verwendet, um zwischen Elementen mit demselben Namen, aber unterschiedlichen Namen zu unterscheiden Quellen. Dies kann zu einer Herausforderung werden, wenn Sie versuchen, XML mit der Simple XML-Erweiterung zu lesen.

Stellen Sie sich das Szenario vor, in dem Sie versuchen, einen RSS-Feed von Flickr zu analysieren und auf Knoten mit Namespaces wie stoßen. und . Das Standardverhalten von Simple XML wäre nicht in der Lage, auf diese Knoten zuzugreifen.

Die Lösung

Um diese Herausforderung zu meistern, bietet Simple XML die Methode children(), die Ihnen dies ermöglicht Zugriff auf XML-Elemente innerhalb eines angegebenen Namespace. Hier ist ein Beispiel:

$feed = simplexml_load_file('http://www.sitepoint.com/recent.rdf');

foreach ($feed->item as $item) {
    $namespace = 'http://purl.org/dc/elements/1.1/';
    $ns_dc = $item->children($namespace);
    echo $ns_dc->date;
}

In diesem Snippet enthält die Variable $namespace den URI des Namespace. Indem Sie dieses Argument an die Methode „children()“ übergeben, können Sie auf die Elemente in diesem Namensraum zugreifen, auch wenn ihre Namen Doppelpunkte enthalten.

Durch die Verwendung der Methode „kinder()“ und die Angabe des entsprechenden Namensraums können Sie XML effektiv analysieren Dokumente, die Elemente mit Namespaces enthalten, auch wenn Sie sich dafür entscheiden, nicht in die Komplexität des DOM einzutauchen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit SimpleXML auf XML-Knoten mit Doppelpunkten zugreifen?. 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