Bonjour
J'ai unDOMDocument avec de nombreux element
Je voudrais extraire certain element dans un nouveau DOMDocument
getElementsByTagName() me retourne une nodeList
N'y a t'il pas un moyen direct pour effectuer cela
Merci
Version imprimable
Bonjour
J'ai unDOMDocument avec de nombreux element
Je voudrais extraire certain element dans un nouveau DOMDocument
getElementsByTagName() me retourne une nodeList
N'y a t'il pas un moyen direct pour effectuer cela
Merci
Une expression XPath ? Elle retournerait elle aussi un objet DOMNodeList mais celui-ci n'aurait pas besoin d'être trié.
Le problème est de rconvertir le nodelist en domDocument
J'ai essayé une boucle foreach mais sans résultat
Joël
Ne pouvez-vous pas ajouter les différents noeuds obtenus à un objet DomDocument (addChild et compagnie) ? Vous avez peut être un code à montrer ?
Mon probleme est la, je n'ai pas de fonction qui s'appliquentà un domList
Je souhaite extraire que les parametresCode:
1
2
3
4
5
6
7
8
9
10
11
12<?xml version="1.0" encoding="ISO-8859-1" ?> <report> <parameters> <param1>1</param1> <param2>2</param2> <param3>3</param3> </parameters> <data> AAA </data> </report>
Mais le document $dom est désepérement videCode:
1
2
3
4
5
6
7
8
9
10 <?php $document = new DOMDocument(); $document->load('xmlfilename'); $nodeList = $document->getElementsByTagName('parameters'); $dom = new DOMDocument; $dom->importNode($nodelist); $xml = $dom->saveXML(); echo $xml; ?>
Merci
Il faudrait ajouter le noeud importé au document ensuite, par exemple :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php $original = DOMDocument::load('flybick.xml'); $parametres = $original->getElementsByTagName('parameters'); // On crée une nouveau document $resultat = new DOMDocument; // On crée la racine $racine = $resultat->createElement('report'); $resultat->appendChild($racine); foreach ($parametres as $p) { $racine->appendChild($resultat->importNode($p, TRUE)); } // Pour test, visualisation du résultat header('Content-type: text/plain'); $resultat->formatOutput = TRUE; echo $resultat->saveXML();
Merci pour votre aide
Je cherchais un chemin plus direct