Rechercher : dans
Par :

PHP + simpleXML

Dernière réponse le 9 mai 2008 à 13:20:27 Karai83, le 2 avr 2008 à 15:16:50 
 Signaler ce message aux modérateurs

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 ...

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « PHP + simpleXML » dans :
PHP - Les fichiers Voir La gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
[PHP] Parse error, unexpected T_STRING, expecting ',' or ';' VoirCette erreur, fréquente, se produit notamment lorsqu'un guillemet est présent dans une chaîne délimitée par ce même type de guillemets, par exemple :
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...

1

 AdilATX, le 9 mai 2008 à 13:20:27

Bonjour,

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

Merci.

Répondre à AdilATX
Collection CommentÇaMarche.net