Maison >développement back-end >tutoriel php >Comment puis-je accéder facilement aux éléments préfixés par un espace de noms en XML simple ?

Comment puis-je accéder facilement aux éléments préfixés par un espace de noms en XML simple ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-08 01:35:12790parcourir

How Can I Easily Access Namespace-Prefixed Elements in Simple XML?

Navigation dans les nœuds avec préfixe d'espace de noms en XML simple

Pour accéder aux éléments qui contiennent un espace de noms préfixé comme media:thumbnail ou flickr:profile dans un Flux RSS, Simple XML fournit une méthode qui contourne le besoin d'un DOM complexe manipulation.

Utiliser children() pour accéder aux éléments avec espace de noms

La méthode children() prend un URI d'espace de noms comme argument et renvoie un itérateur qui génère des objets représentant les éléments dans l'espace de noms spécifié. Par exemple :

$feed = simplexml_load_file('http://www.sitepoint.com/recent.rdf');
foreach ($feed->item as $item) {
    $ns_dc = $item->children('http://purl.org/dc/elements/1.1/');
    echo $ns_dc->date;
}

Dans cet extrait, $ns_dc devient un itérateur sur les éléments enfants de chaque élément appartenant à l'espace de noms http://purl.org/dc/elements/1.1/. Cela vous permet d'accéder à l'élément de date dans l'espace de noms DC.

Application de cette solution à votre flux Flickr

Pour récupérer la vignette de chaque élément de votre flux RSS Flickr , vous pouvez utiliser le code suivant :

$feed = simplexml_load_file('http://example.com/flickr.rss');
foreach ($feed->item as $item) {
    $ns_media = $item->children('http://search.yahoo.com/mrss/');
    echo $ns_media->thumbnail->attributes()->url;
}

Cela affichera l'URL de la vignette de chaque élément du nourrir.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn