Posez votre question Signaler

PHP + simpleXML

Karai83 33Messages postés 17 mars 2008Date d'inscription - Dernière réponse le 9 mai 2008 à 13:20
Bonjour,
J'envisage d'utiliser simpleXML pour manipuler (lecture seule) des données
XML. Ces données appartiennent à *plusieurs* namespaces.
Quand j'utilise la méthode simplexml_load_string(...), il semblerait que je ne
puisse accéder qu'à du contenu appartenant à *un seul* namespace.
Par exemple :
<?xml version="1.0"?>
<samlp:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="_fa9b6e0673e54c0e73a1428a0dbde01eaaa19b80e6"
InResponseTo="_0be59f829aed7e33452a600ec98500cd"
Version="2.0" [...] >
<saml:Issuer
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">idp.example.org</saml:Issuer>
<samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<samlp:StatusCode
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</samlp:Status>
<saml:Assertion>
[...]
</saml:Assertion>
</samlp:Response>
Si je fais un :
$xml = simplexml_load_string($moXML, null, null,
"urn:oasis:names:tc:SAML:2.0:protocol");
j'ai bien accès au nœud <samlp:StatusCode ...>, mais comme son attribut
"Value" n'appartient pas au même NameSpace, je ne peux pas y accéder avec une
ligne du style :
$_status = (string)$xml->{'Status '}->{'StatusCode'}['Value'];
Quelqu'un connait la solution pour préciser plusieurs namespaces ? Ou procéder
autrement ? Sachant que j'exclus d'utiliser systématiquement des filtres xpath
, couteux, et que je préfère éviter une manipulation de DOM, un peu lourde
pour mon besoin ...
Lire la suite 

PHP + simpleXML »

Suggestions
1 réponses
Réponse
+0
moins plus
Bonjour,

Moi aussi j'ai le même problème, est ce que tu as pu trouver une solution?

Merci.
Ajouter un commentaire
Ce document intitulé « PHP + simpleXML » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook