Bonjour,
Je dois traiter un fichier xml avec un script en php et j'ai un problème pour récupérer des valeurs. Le fichier xml est gros (très très gros, 9Mo) mais ca ne m'empèche pas de récupérer certaines infos.
Je vous mets ici la partie qui m'intéresse, n'hésitez pas si besoin de plus d'infos mais je ne pourrais pas fournir le xml
J'ai essayé de faire un fichier minimaliste avec les infos que je recherche afin d'avoir de l'aide de votre part ^^
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59<?xml version="1.0" encoding="iso-8859-1"?> <company tenantId="0" xmlns="urn:com/ieffects/xml/types" xmlns:p="urn:com/ieffects/xml/html" xmlns:page="urn:com/ieffects/xml/page" xmlns:fournisseurTypes="urn:com/ieffects/xml/fournisseur/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <companyShop id="0" xmlns="urn:com/ieffects/xml/types"/> <shop id="1"> <shopFields xsi:type="fournisseurTypes:FournisseurShopFields"> <fournisseurTypes:appConfig codeEnseigne="Fournisseur" deliveryDate="false" icon="/opt/import/images/0/img1.png" partialDelivery="false" title=""/> <fournisseurTypes:appConfig codeEnseigne="101" deliveryDate="false" icon="/opt/import/images/0/img2.png" partialDelivery="false" title=""/> </shopFields> <home> <topLevelDepartmentId>U0cwMDAwMDE=</topLevelDepartmentId> <topLevelDepartmentId>U0cwMDAwMDI=</topLevelDepartmentId> <topLevelDepartmentId>U0cwMDAwMDM=</topLevelDepartmentId> <topLevelDepartmentId>U0cwMDAwMDQ=</topLevelDepartmentId> <topLevelDepartmentId>U0cwMDAwMDU=</topLevelDepartmentId> <topLevelDepartmentId>U0cwMDAwMDY=</topLevelDepartmentId> <topLevelDepartmentId>U0cwMDAwMDc=</topLevelDepartmentId> <topLevelDepartmentId>U0cwMDAwMDg=</topLevelDepartmentId> <topLevelDepartmentId>U0cwMDAwMDk=</topLevelDepartmentId> </home> <currency exchangeRate="1" iso="EUR"/> <article baseUnit="Unité(s)" brand="Marque1" gtin="8718291840497" icon="/opt/import/images/Products/G/5204/1aa8f7ed-c03e-42df-8c66-a4a501479906.jpg" id="MDUyMDQxODQwNDk=" locked="0" name="article 1" number="05204184049" parentDepartmentId="RkMxMDA0MDM=" sortRank="1" supplierArticleNumber="840497" xsi:type="StandardArticle"> <salesUnit name="1 Unité(s)" quantity="1"/> <articleFields textSearchHint="17PNA071|17PNP070|18PNP196|2017CGEDESS396|" xsi:type="fournisseurTypes:FournisseurStandardArticleFields"> <fournisseurTypes:codeEnseignes>101 Fournisseur</fournisseurTypes:codeEnseignes> </articleFields> <cellGroup name="Description"> <page:cell text="description du produit" xsi:type="page:TextCell"/> </cellGroup> <cellGroup name="Informations"> <page:cell key="EAN" xsi:type="page:KeyValueCell"> <page:value>8718291840497</page:value> </page:cell> <page:cell key="Référence métier" xsi:type="page:KeyValueCell"> <page:value>05204184049</page:value> </page:cell> </cellGroup> <cellGroup name="Caractéristiques"> <page:cell key="adapté à un montage mural" xsi:type="page:KeyValueCell"> <page:value>Oui</page:value> </page:cell> <page:cell key="adapté à une suspension pendulaire" xsi:type="page:KeyValueCell"> <page:value>Oui</page:value> </page:cell> <page:cell key="adapté à un montage au plafond" xsi:type="page:KeyValueCell"> <page:value>Oui</page:value> </page:cell> <page:cell key="adapté à un montage encastré" xsi:type="page:KeyValueCell"> <page:value>Non</page:value> </page:cell> <page:cell key="adapté à un montage en saillie" xsi:type="page:KeyValueCell"> <page:value>Oui</page:value> </page:cell> </cellGroup> <image>/opt/import/images/Products/G/5204/1aa8f7ed-c03e-42df-8c66-a4a501479906.jpg</image> <priceDisplayUnit name="1 Unité(s)" quantity="1"/> </article> </shop> </company>
Donc ce que je cherche à avoir ce sont les valeurs dans les noeuds <cellGroup>.
J'arrive à avoir le "name" des noeuds mais pas a rentrer dans le noeud pour boucler et obtenir les infos
Mon code est le suivant:
Le retour de printr_($cellgroup) est:
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 <?php $xml_file = $base_folder . "fournisseur.xml"; if (file_exists($xml_file)) { $xml = simplexml_load_file($xml_file) or die("Error: Cannot create object"); $articles = $xml->shop->article; foreach ($articles as $article) { if ((string)$cellGroup['name'] == "Caractéristiques") { print_r($cellgroup); foreach ($cellGroup->children() as $cell){ print_r($cell); } } } } ?>
Le retour de print_r($cell) est: ... rien en faite, j'ai l'impression de ne pas rentrer dedans :'(
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SimpleXMLElement Object ( [@attributes] => Array ( [name] => Caractéristiques ) )
J'ai essayé plusieurs méthodes pour avoir le contenu du noeud cellGroup mais je n'affiche jamais mes données. J'ai besoin de votre aide, please help!
Partager