Parser xml avec spacename

Résolu
JF11 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
JF11 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je tourne en rond pour essayer de parser en PHP ce fichier xml :
---------------------
<?xml version="1.0" encoding="iso-8859-1" ?>
<pdl:solution xmlns:pdl="https://www.domaine.fr/">
<pdl:rub>
<pdl:param name="champ1">toto</pdl:param>
<pdl:param name="champ2">titi</pdl:param>
</pdl:rub>
</pdl:solution>
-----------------
Les fichiers simples en xml c'est ok, mais là je cale !
qq'un pourrait-il me dépanner, svp ?
L'objectif étant d'obtenir les valeurs de champ1 et champ2

Merci pour votre aide
JF



A voir également:

4 réponses

zermat Messages postés 160 Date d'inscription   Statut Membre Dernière intervention   16
 
Essayez:

$xml=simplexml_load_file("fichier.xml");
$ns = $xml->getNamespaces(true);
$pdl = $xml->children($ns['pdl']); 
foreach ($pdl->rub as $entry){
 $params = $entry->param;
 for($i=0;$i<count($params);$i++)
 {
 echo $params[$i]->attributes()->name . ' : ' . $params[$i] . '<br>';
 }
}
2
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Avec quel API souhaites-tu parser ton fichier xml ?

Avec DomDocument par exemple, il faut regarder du coté de getElementsByTagNameNS : https://www.php.net/manual/en/domdocument.getelementsbytagnamens.php

Bonne journée
1
JF11 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   2
 
Salut,
Merci pour ton aide.
D'habitude j'utilise simplexml_load_file avec une simple boucle foreach.

Mais je ne suis débuant en xml...
JF
0
JF11 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci beaucoup Zermat.
C'est ce qui me manquait !
C'est nickel maintenant.
JF
0