Maison >développement back-end >tutoriel php >Voici quelques titres basés sur des questions basées sur votre article, mettant en avant l'aspect « pourquoi est-il vide » : * **SimpleXML et `print_r()` : Pourquoi affiche-t-il un tableau vide pour les éléments XML ?** * *
SimpleXML et print_r() - Pourquoi est-ce vide ?
Lorsque vous utilisez SimpleXML pour charger un fichier XML, puis imprimer son contenu à l'aide de print_r (), vous pouvez rencontrer une sortie vide inattendue. Ce problème provient de la façon dont print_r() gère les objets SimpleXML.
Pourquoi print_r() affiche-t-il un tableau vide pour les éléments SimpleXML ?
Print_r() et var_dump( ) n'affichent pas toujours efficacement les objets SimpleXML en raison de la mécanique interne complexe de SimpleXML. Au lieu de cela, il est recommandé d'utiliser la méthode asXML() pour inspecter le contenu de l'objet XML.
Dans votre cas spécifique, print_r() affiche un élément Item vide car les attributs imbriqués se trouvent dans un espace de noms différent.
Accès aux éléments avec espace de noms dans SimpleXML
Pour accéder aux éléments dans un espace de noms différent à l'aide de SimpleXML, vous pouvez utiliser différentes méthodes :
Exemples de code :
Utilisation de children(namespace, include_ns) :
<code class="php">$ArrayOfItem->Item->children("http://systinet.com/wsdl/com/osm/webservices/service/", true);</code>
Utilisation de xpath() :
<code class="php">$ArrayOfItem->Item->xpath('//q1:Attribute');</code>
Utilisation de registerXPathNamespace() :
<code class="php">$ArrayOfItem->Item->registerXPathNamespace('q1', 'http://systinet.com/wsdl/com/osm/webservices/service/'); $attributes = $ArrayOfItem->Item->xpath('//q1:Attribute');</code>
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!