Gestion des espaces de noms personnalisés dans SimpleXML
Question :
Dans un document XML avec un espace de noms, l'analyse SimpleXML ne parvient pas à exposer les éléments de cet espace de noms. Comment cela peut-il être résolu ?
Réponse :
Pour accéder aux éléments d'espace de noms personnalisés à l'aide de SimpleXML, il est nécessaire de s'inscrire et d'utiliser le préfixe d'espace de noms. Ceci est généralement réalisé en utilisant la fonction children() avec le préfixe d'espace de noms comme premier argument et true comme deuxième argument pour activer la correspondance récursive :
<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>
Cela affichera :
link: qweqwe genre: asdasd
En enregistrant le préfixe de l'espace de noms, il devient possible d'accéder aux éléments d'espace de noms personnalisés et de récupérer leurs valeurs à l'aide de children().
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!