Maison > développement back-end > tutoriel php > Comment analyser correctement le XML avec espace de noms avec XPath de SimpleXML ?

Comment analyser correctement le XML avec espace de noms avec XPath de SimpleXML ?

Susan Sarandon
Libérer: 2024-12-18 10:05:10
original
704 Les gens l'ont consulté

How to Correctly Parse Namespaced XML with SimpleXML's XPath?

Comment analyser du XML avec un espace de noms à l'aide de SimpleXML

Problème :

Lors de la tentative d'analyse XML avec des espaces de noms utilisant SimpleXML, rencontrant des problèmes avec registerXPathNamespace() méthode.

Structure XML :

<root xmlns:event="http://www.webex.com/schemas/2002/06/service/event">
  <event:event>
    <event:sessionKey>...</event:sessionKey>
    ...
  </event:event>
  ...
</root>
Copier après la connexion

Exemple de requête XPath :

Tentative d'extraction de 'event:sessionKey' valeurs using :

$xml->registerXPathNamespace('e', 'http://www.webex.com/schemas/2002/06/service/event');
$event->xpath('//e:sessionKey')
Copier après la connexion

Solution :

Le problème réside dans la nécessité à la fois du préfixe d'espace de noms ('e') et de l'URI complet de l'espace de noms dans la requête XPath , même sans utiliser registerXPathNamespace().

Corrigé Code :

$xml = new SimpleXMLElement($r);

foreach ($xml->xpath('//event:event') as $event) {
  var_export($event->xpath('event:sessionKey'));
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal