Afficher dans un formulaire des élément d'un xml

Nathamis -  
Gigatrappeur Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
ce n'est peut être pas bien dit dans le titre alors je vous explique plus clairement ce que j'essaye de faire.

Je suis entrain de générer des xml via des formulaire traité en php avec dom php.
Dans une de mes étapes j'ai besoin :
1 - choisir dans quel fichier xml déjà créer je veux ajouter des noeuds via un champ select ( ça j'ai réussi )
2 - par rapport au fichier choisit juste avant généré des valeurs d'attribut qu'il y a dans ce fichier xml ( c'est là que je bloque )

Je suppose que j'ai besoin d'ajax, mais je n'en ai encore jamais fait. Je ne sais pas très bien par ou commencer.

Voilà un de mes fichier xml :
<?xml version="1.0" encoding="utf-8"?>
<QuestionnaireConfiguration>
  <Title text="Liste de personne"/>
  <Page legend="identite" description="qui sont-ils ?">
    <Line type="QUESTION" text="votre nom ?">
      <input type="text" name="nom" value="nom"/>
    </Line>
    <Line type="QUESTION" text="votre prenom ?">
      <input type="text" name="prenom" value="prennom"/>
    </Line>
  </Page>
  <Page legend="profession" description="qui font-ils ?">
    <Line type="QUESTION" text="votre profession ?">
      <input type="text" name="profession" value="profession"/>
    </Line>
  </Page>
</QuestionnaireConfiguration>


Voici comment je récupère tous les nom des fichiers xml :
$dirname = 'C:/xampp/htdocs/XML/questionnaires/';
                        $dir = opendir($dirname);

                        while($file = readdir($dir)) {
                            if($file != '.' && $file != '..' && !is_dir($dirname.$file))
                            {  
                                $file = str_replace('.xml', '', $file);
                                $file = str_replace('_', ' ', $file);
                                echo '<option>'.$file.'</option>';
                            }
                        }

                        closedir($dir);


Et ce que j'aimerai pouvoir récupérer dans le fichier xml choisit c'est la legend des noeuds Page, pour les mettre dans un champ select

Merci d'avance pour votre aide, dont j'ai vraiment besoin.
A voir également:

1 réponse

Gigatrappeur Messages postés 226 Date d'inscription   Statut Membre Dernière intervention   25
 
Bonjour,

Plusieurs solutions :
1/ tu fais une requête xpath sur ton xml : https://www.php.net/manual/en/simplexmlelement.xpath.php
Cela te permet de récupérer une liste.
Si tu n'a jamais fait d'xpath, c'est très simple : http://pages-perso.luminy.univ-amu.fr/erreur.php?code=404

2/ tu peux parcourir le DOM de ton xml via SimpleXMLElement : https://www.php.net/manual/en/class.simplexmlelement.php

3/ tu peux faire une regex avec la méthode "larache" :
https://www.php.net/preg_match

Cordialement,
Gigatrappeur
0