Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > DOMXML
DOMXML Forum d'entraide pour l'extension DOMXML permettant de manipuler des documents XML en PHP 4 (approche DOM). Avant de poster -> tutoriels DOMXML
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 02/06/2005, 10h49   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 82
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 82
Points : 12
Points : 12
Par défaut [DOMXML] XML -> tableau PHP

Salut à tous !

Voilà j'aimerai connaître le moyen de transférer mes données d'un fichier XML vers un tableau PHP. J'ai déjà utilisé XSLT mais j'aimerai utiliser une autre méthode (peut-être les parser mais je sais pas tro comment ça marche !)

une idée ou des tutos à suggérer ?
Mucsy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2005, 12h53   #2
Membre du Club
 
Inscription : décembre 2004
Messages : 63
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 63
Points : 65
Points : 65
tu peut utiliser dom en php
guemairm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2005, 14h52   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 82
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 82
Points : 12
Points : 12
Merci !

j'aimerai utiliser la fonction mais je ne sais pas trop comment faire :
j'ai déclaré un objet
Code :
$domdoc = new DOMDocument
et pour la fonction
Code :
$domdoc->domxml_xmltree("fichier.xml");
Malheureusement, ça ne marche pas ! c quoi l'erreur ?
Mucsy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2005, 15h11   #4
Membre du Club
 
Inscription : décembre 2004
Messages : 63
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 63
Points : 65
Points : 65
Citation:
j'ai déclaré un objet
Code:
$domdoc = new DOMDocument
tu doit pas creer un nouveau objet dom puisque ta deja le fichier xml
Code :
1
2
 
$objet = xmldocfile(fichier.xml);
et $objet est l'objet dom que tu va traiter.
guemairm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2005, 15h41   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 82
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 82
Points : 12
Points : 12
Finalement, j'ai utilisé
Code :
1
2
3
4
$fd=fopen ("fichier.xml","r");
$domdoc=fread ($fd, filesize("fichier.xml"));
fclose($fd);
$docTree=xml($domdoc);
maintenant, quand j'affiche $docTree, j'ai un arbre "bizarre" du genre
Code :
1
2
3
4
5
6
7
8
9
10
[4] => domelement Objet
{
    [type] => 1
    [tagname] => item
    [0] => 34
    [1] => 111643192
    [attributes] => Array
    {
        [0] => domattribute Objet
        ....
et ainsi de suite. Je ne sais pas quoi faire avec cet arbre de façon à ce que les pères et les fils de mon arbre soient dans des tableaux PHP ...
Mucsy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2005, 17h27   #6
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 82
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 82
Points : 12
Points : 12
Voilà mon problème :
j'ai un fichier XML qui décrit une hiérarchie géographique. En voilà un morceau :
Code :
1
2
3
4
5
6
7
8
9
<item level="0">
<fullPath value="/europe"/>
<label value="Europe"/>
<father value=""/>
</item><item level="1">
<fullPath value="/europe/austria"/>
<label value="Österreich"/>
<father value="europe"/>
</item>
Ce fichier XML est maintenant contenu dans $docTree.
Quand j'affiche avec
Code :
print_r($docTree->get_attribute_by_tagname("label"))
j'obtiens :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Array 
( 
	[0] => domelement Object 
	(
		 [type] => 1 
		[tagname] => label 
		[0] => 28 
		[1] => 112506872 
		[attributes] => Array
		 ( 
			[0] => domattribute Object 
			( 
				[type] => 2 
				[name] => value 
				[value] => Europe 
				[0] => 29 
				[1] => 112523336 )
et ainsi de suite. Il parcourt donc tout mon arbre XML. J'aimerai récupérer la valeur de [value] ("Europe") et le mettre dans un tableau php.

Si quelqu'un avait une idée, ça serait génial !
Mucsy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2005, 11h44   #7
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 82
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 82
Points : 12
Points : 12
Bon et bien j'ai fini par trouver la reponse (tout seul !)...
Pour ceux que ça intéresse :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$fd = fopen("toponymHierarchy.xml","r"); 
$myXML = fread($fd,filesize("toponymHierarchy.xml")); 
fclose($fd); 
$docTree = xmltree($myXML);
$liste = $docTree->get_Elements_By_tagName("label");
foreach ($liste as $element)
{
	$attrs = $element->attributes();
	echo "<br>";
	echo 'Attributs de : '.$element->node_name();
	echo "<br>";
	foreach ($attrs as $attribute)
	{
		echo '-'.$attribute->name.' : '.$attribute->value."\n";
	}
}
et ça m'affiche :
Attributs de : label
-value : Europe
Attributs de : label
-value : Österreich


voilà
Mucsy 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 12h09.


 
 
 
 
Partenaires

Hébergement Web