SimpleXML et print_r() - pourquoi ce vide?
Salut à tous voici mon fichier xml: (thefile)
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://nts-de-osm1-pxc/webservices/">
<Item xmlns:q1="http://systinet.com/wsdl/com/osm/webservices/service/" xsi:type="q1:Document">
<q1:attributes>
<q1:Attribute>
<q1:dataDictionary xsi:nil="true" />
<q1:dataType>string</q1:dataType>
<q1:displayName>AEND_DATUM</q1:displayName>
<q1:key>false</q1:key>
<q1:name>AEND_DATUM</q1:name>
<q1:searchable>true</q1:searchable>
<q1:userAttribute>true</q1:userAttribute>
<q1:value>10.05.10</q1:value>
</q1:Attribute>
<q1:Attribute>
<q1:dataDictionary xsi:nil="true" />
<q1:dataType>string</q1:dataType>
<q1:displayName>AEND_PRUEF_DATUM</q1:displayName>
<q1:key>false</q1:key>
<q1:name>AEND_PRUEF_DATUM</q1:name>
<q1:searchable>true</q1:searchable>
<q1:userAttribute>true</q1:userAttribute>
<q1:value>10.05.10</q1:value>
</q1:Attribute>
</q1:attributes>
</Item>
</ArrayOfItem>
Voici mon code
$xml = simplexml_load_file($thefile);
print_r($xml);
C'est la sortie
SimpleXMLElement Object
(
[Item] => SimpleXMLElement Object
(
)
)
Pourquoi ce Vide?
OriginalL'auteur sschnake | 2010-06-24
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser print_r() ou var_dump() pour inspecter un SimpleXMLElement, ils ne sont pas nécessairement travailler sur eux parce que SimpleXML utilise beaucoup de la magie de la scène. Au lieu de cela, regardez ce que
asXML()
retourne.Dans votre cas, il ne montre pas
<q1:attributes/>
car ils ne sont pas dans le même espace de noms.Modifier
Pour accéder à ces espaces de nœuds, il y a de nombreuses façons différentes, la plupart d'entre eux discuté ici à Débordement de Pile. Si vous ne pouvez pas travailler, veuillez ouvrir une nouvelle question, puisque le sujet est différent. Voici 3 façons d'accéder à ces éléments:
OriginalL'auteur Josh Davis
La simpleXML analyseur doit fournir un message d'erreur significatif que vous pouvez récupérer et de sortie. Découvrez l'exemple de code dans la documentation sur
libxml_get_errors()
.indique au moins une grave erreur, n'est-il pas? (le manque de fermeture de balise)
Ouais, le XML n'était pas valide (j'ai corrigé le post original) et un relief d'au moins 3 PHP avertissements. Vérifiez votre niveau de niveau de. Essayez d'ajouter
error_reporting(-1);
au début de vos scripts, sinon vous allez manquer un grand nombre de ces erreurs.OriginalL'auteur Pekka 웃
Deux choses:
<q1:Attributes>
type de balises. Je l'ai changé pour<q1>
et il fonctionne jusqu'à ce tag.Je pense que vous avez besoin SimpleXML analyseur ici
OriginalL'auteur pinaki