Bonjour @ tous,
En gros, je rentre dans le XML à une balise X et je doit remonter jusqu'à ce que je trouve un certain attribut.
Je me trouve incapable de remonter une arborescence.
Il me fait soit rien soit une erreur.
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 $admins = array(); if (file_exists("theme.xml")) { $doc = new DOMDocument('1.0', 'UTF-8'); // Creation d'un domdocument $doc->preserveWhiteSpace = FALSE; $doc->load("theme.xml"); // Chargement de ce fichier loadXML $xpath = new DOMXPath($doc); $noeud = $xpath->query('//support[@idSupport="'.$idSupport.'"]', $doc); echo ">".XML_ELEMENT_NODE." - ".XML_ATTRIBUTE_NODE." - ".XML_TEXT_NODE." - ".XML_CDATA_SECTION_NODE." - ".XML_COMMENT_NODE."<br />"; while ($noeud!=null) { if ($noeud->firstChild->nodeType == XML_ELEMENT_NODE) { // XML_TEXT_NODE XML_ELEMENT_NODE echo "1>".$noeud->firstChild->nodeName."<br />"; if (($noeud->firstChild->hasattribute("notif_mail")) && ($noeud->firstChild->getattribute("notif_mail")!="")) { $admins = explode(";", $noeud->firstChild->getattribute("notif_mail")); Break; } else $noeud = $noeud->firstChild->parentNode; } else { echo "2>".$noeud->item(0)->nodeName.": ".$noeud->item(0)->nodeType."<br />"; $noeud = $noeud->item(0)->parentNode; } // */ } } echo var_dump($admins);
En gros, selon le type de noeud, il faut soit mettre ->item(0), soit pas... Et je ne sais pas quand.
Voici le XML:
Code xml : 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 <vehicules> <vehicule idVehicule="1" notif_mail="test"> <univers> <univer idUniver="1"> <themes> <theme idTheme="94"> <supports> <support idSupport="520" date_ajout="2012-03-05" date_modif="2012-10-23"/> </supports> </theme> <theme idTheme="9"> <supports> <support idSupport="153" date_ajout="2011-10-23" date_modif="2012-10-23"/> </supports> </theme> <themes>
Partager