Page 1 sur 1

Parser un xml

Posté : 25 mars 2016, 16:34
par fred39
Bonjour,
j'aimerais parser un fichier xml pour sortir une liste d'élève.
voici un extrait du xml
[color=#000000][code]<?xml version="1.0" encoding="ISO-8859-15"?>
<!DOCTYPE ficAlimMENESR SYSTEM "ficAlimMENESR.dtd">
<ficAlimMENESR>

<addRequest>
<operationalAttributes><attr name="categoriePersonne"><value>Eleve</value></attr></operationalAttributes>
<identifier><id>12345</id></identifier>
<attributes>
<attr name="ENTPersonJointure"><value>12345</value></attr>
<attr name="ENTEleveStructRattachId"><value>618193</value></attr>
<attr name="ENTPersonDateNaissance"><value>12/07/1998</value></attr>
<attr name="ENTPersonNomPatro"><value>NOMTOTO</value></attr>
<attr name="givenName"><value>PrenomToto</value></attr>
<attr name="ENTPersonAutresPrenoms"><value>PrenomToto</value><value>Prenom2Toto</value><value>Prenom3Toto</value></attr>
<attr name="personalTitle"><value>Mlle</value></attr>
<attr name="ENTEleveRegime"><value>DEMI-PENSIONNAIRE DANS L&apos;ETABLISSEMENT 4</value></attr>
<attr name="ENTEleveTransport"><value>N</value></attr>
<attr name="ENTEleveStatutEleve"><value>SCOLAIRE</value></attr>
<attr name="ENTEleveMEF"><value>20010015110</value></attr>
</attributes>
</addRequest>

<addRequest>
<operationalAttributes><attr name="categoriePersonne"><value>Eleve</value></attr></operationalAttributes>
<identifier><id>6789</id></identifier>
<attributes>
<attr name="ENTPersonJointure"><value>6789</value></attr>
<attr name="ENTEleveStructRattachId"><value>654321</value></attr>
<attr name="ENTPersonDateNaissance"><value>12/07/1998</value></attr>
<attr name="ENTPersonNomPatro"><value>NOMTITI</value></attr>
<attr name="givenName"><value>PrenomTiti</value></attr>
<attr name="ENTPersonAutresPrenoms"><value>PrenomTiti</value><value>Prenom2Titi</value><value>Prenom3Titi</value></attr>
<attr name="personalTitle"><value>Mr</value></attr>
<attr name="ENTEleveRegime"><value>DEMI-PENSIONNAIRE DANS L&apos;ETABLISSEMENT 4</value></attr>
<attr name="ENTEleveTransport"><value>N</value></attr>
<attr name="ENTEleveStatutEleve"><value>SCOLAIRE</value></attr>
<attr name="ENTEleveMEF"><value>321321321354</value></attr>
</attributes>
</addRequest>

</ficAlimMENESR>[/code][/color]
j'aimerais juste par exemple faire une liste nom prénoms des élèves.
mais je n'arrive pas à récupérer la valeur de "ENTPersonNomPatro" par exemple.
voici mon code
[code]<?php
$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->load('monfichier.xml');
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>DOM XML</title>
    </head>
    <body>
        
<?php



$eleves = $dom ->getElementsByTagName('attributes');

foreach ($eleves as $eleve) {
    
    //ecrire ici le nom et le prenom de l'élève
    
    echo "<br / >";
}
?>
        </table>
    </body>
</html>[/code]
je ne comprends pas comment récupérer les valeur en fonction des <attr name=xxxx

d'avance merci :-)

Re: Parser un xml

Posté : 29 mars 2016, 14:41
par Spols
Il faut que tu parcours tous les enfants des tes balises attributes (donc les balises attr) et que tu cherches si l'enfant à le paramètre que tu cherche. Si c'est le cas tu récupère la valeur de la balise.

Re: Parser un xml

Posté : 14 avr. 2016, 14:39
par fred39
Bonjour, désolé pour le délai, je reprends ce code aujourd'hui,
merci pour la réponse :)
voici mon code:

Code : Tout sélectionner

<?php $dom = new DOMDocument(); $dom->preserveWhiteSpace = false; $dom->load('monfichier.xml'); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>DOM XML</title> </head> <body> <table> <th>Numéro</th><th>Nom</th><th>Prénom</th> <?php $ids = $dom ->getElementsByTagName('attributes'); $i = 0; foreach ($ids as $id) { $i = $i + 1; $attrs = $id->getElementsByTagName('attr'); foreach ($attrs as $attr) { if ($attr->getAttribute('name') == 'ENTPersonNomPatro') { echo "<tr><td>".$i."</td><td>".$attr->nodeValue."</td>"; } if ($attr->getAttribute('name') == 'givenName') { echo "<td>".$attr->nodeValue."</td>"; } }} ?> </table> </body> </html>

Re: [RESOLU] Parser un xml

Posté : 14 avr. 2016, 15:12
par Spols
Et ce code te donne t il satisfaction ?
Y a t il des erreurs, des informations erronées ou manquantes ?