Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOM
DOM Forum d'entraide pour l'extension DOM permettant de manipuler des documents XML en PHP 5 (approche DOM). Avant de poster -> tutoriels DOM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2007, 00h58   #1
Membre à l'essai
 
Inscription : août 2003
Messages : 101
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 101
Points : 23
Points : 23
Par défaut [DOM] Extraire une liste d'élément

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
FlyByck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 10h07   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Une expression XPath ? Elle retournerait elle aussi un objet DOMNodeList mais celui-ci n'aurait pas besoin d'être trié.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 22h28   #3
Membre à l'essai
 
Inscription : août 2003
Messages : 101
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 101
Points : 23
Points : 23
Le problème est de rconvertir le nodelist en domDocument
J'ai essayé une boucle foreach mais sans résultat

Joël
FlyByck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 23h15   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Ne pouvez-vous pas ajouter les différents noeuds obtenus à un objet DomDocument (addChild et compagnie) ? Vous avez peut être un code à montrer ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2007, 23h33   #5
Membre à l'essai
 
Inscription : août 2003
Messages : 101
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 101
Points : 23
Points : 23
Mon probleme est la, je n'ai pas de fonction qui s'appliquentà un domList
Code :
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>
Je souhaite extraire que les parametres
Code :
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;
?>
Mais le document $dom est désepérement vide

Merci
FlyByck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 21h50   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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();
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 23h39   #7
Membre à l'essai
 
Inscription : août 2003
Messages : 101
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 101
Points : 23
Points : 23
Par défaut [resolu]

Merci pour votre aide
Je cherchais un chemin plus direct
FlyByck est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h47.


 
 
 
 
Partenaires

Hébergement Web