Bonjour,
J'ai créer un petit bout de code pour parser un document xml. il fonctionne tip top. Voici mon code :
Mais j'ai un petit problème lorsque dans mon fichier xml il y a par exemple ce cas de figure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <?php //création du nouveau document pour la lecture du document xml $dom = new DomDocument; $dom->load("donnee.xml"); $liste_categorie_produit = $dom->getElementsByTagName('CategoryProductList'); foreach($liste_categorie_produit as $categorie_produit) { $liste_category = $categorie_produit->getElementsByTagName('Category'); foreach($liste_category as $category) { $liste_family = $category->getElementsByTagName('Family'); foreach($liste_family as $family) { $liste_nom = $family->getElementsByTagName('Name'); foreach($liste_nom as $nom) { echo $nom->nodeValue . "<br />"; } } } } ?>
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <test1> <test2> <test1></test1> </test2> </test1>
Bon, là ça à l'aire inutile, mais voici l'exemple d'un bout de mon fichier xml que je parse :
On peut voire qu'il y a la balise name à plusieurs niveau, mais j'aimerais récupérer dans un premier temps que celle du premier niveau, et m'arrêter à ce niveau là, mais il ne le fait pas, il récupère toutes les autres balise name.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE CMS-Data PUBLIC "-//Toshiba//DTD cms bv data V1.0//EN" "CMS-BV-Data.dtd"> <CMS-Data Version="1.0"> <Head> <Meta Name="date" Content="2007-05-10 03:54:33"/> </Head> <Country DBkey="16179">Switzerland</Country> <Language DBkey="16181">Swiss-French</Language> <CategoryProductList> <Category DBkey="2319"> <Name>Notebooks</Name> <Family DBkey="104264" Created="2005-05-25" Modified="2005-05-25" Removed="N"> <Name>Libretto</Name> <Description>Libretto</Description> <Series DBkey="104265" Created="2005-05-25" Modified="2005-05-25" Removed="N">
J'espère que je suis assez claire, mais c'est pas facile a expliquer.
Est-ce que quelqu'un pourrait m'aider?
Merci d'avance pour votre aide
krfa1
Partager