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 08/02/2007, 20h31   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : septembre 2006
Messages : 60
Points : 13
Points : 13
Par défaut [DOMXML] Récupération de données

Bonsoir,

Avant toutes choses, sachez que j'ai fais des recherches et que je ne viens pas ici en touriste pour gagner simplement du temps (:

J'ai en fait un petit soucis qui ne devrait pas poser trop de problèmes à certains mais qui personnellement m'embête un peu. J'ai ce code (c'est du XML) :

Code xml :
1
2
3
4
5
<CONFIG>
<PARAM name="config1"/>valeur 1</PARAM>
<PARAM name="config2"/>valeur 2</PARAM>
<PARAM name="config3"/>valeur 3</PARAM>
</CONFIG>

Je souhaiterais récuperer ca en PHP, par exemple de la manière suivante :

$config1 = valeur 1
$config2 = valeur 2
$config3 = valeur 3

Si quelqu'un a une idée... merci.
Woodgate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 21h06   #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
Citation:
Envoyé par Woodgate
J'ai ce code (c'est du XML)
Non il est mal formé

Une solution avec SimpleXML (PHP5) :
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
$xml = simplexml_load_file('config.xml');
 
foreach ($xml->PARAM as $param) {
   ${$param['name']} = (string) $param;
}
 
echo $config1 . '<br/>';
echo $config2 . '<br/>';
echo $config3 . '<br/>';
?>

Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2007, 22h06   #3
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : septembre 2006
Messages : 60
Points : 13
Points : 13
Certes, merci.

Le problème, c'est que imaginons que je ne sois pas équipé de PHP5... ? (:
Woodgate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 12h04   #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
Vous auriez pu le dire avant

Avec DOM XML (php4) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if(!$dom = domxml_open_file("config.xml")) {
    die("Erreur lors de l'analyse du document\n");
}
$config = $dom->document_element();
$params = $config->child_nodes();
foreach ($params as $param) {
    if ($param->node_type() == XML_ELEMENT_NODE) {
        ${$param->get_attribute('name')} = $param->get_content();
    }
}
 
echo $config1 . '<br/>';
echo $config2 . '<br/>';
echo $config3 . '<br/>';
?>

Julp.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2007, 14h35   #5
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
...ou encore :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if(!$dom = domxml_open_file("config.xml")) {
    die("Erreur lors de l'analyse du document\n");
}
$params = $dom->get_elements_by_tagname('PARAM');
foreach ($params as $param) {
        ${$param->get_attribute('name')} = $param->get_content();
}
echo $config1 . '<br/>';
echo $config2 . '<br/>';
echo $config3 . '<br/>';
?>
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2007, 10h32   #6
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : septembre 2006
Messages : 60
Points : 13
Points : 13
Merci,

Mais en fait ca se complique. En fait, je génère du XML avec du PHP, par exemple de cette manière :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
header("Content-Type: text/xml");
 
echo '<?xml version="1.0"?>';
 
echo "<blog>
 
	<page1>
 
		<article1>
 
		<param name='nom'>Valeur 1</param>
		<param name='texte'>Valeur 2</param>
		<param name='image'>Valeur 3</param>
 
		</article1>
 
	</page1>
 
</blog>";
?>
Par exemple, admettons que ce soit xml.php.

Je souhaiterais pouvoir le lire avec php, et je crois que domxml_open_file() refuse de me lire mon fichier .php.

Est ce que quelqu'un pourrait m'expliquer une petite solution ? Je voudrais par exemple pouvoir contenu dans $nom $texte et $image les données comprises dans <param name='nom'> (etc...) et sachant qu'il va falloir appeller page1 et article1 connaissant $page et $article.

Par exemple, page$page et article$article avec $page = 1 et $article = 1 appellerait les données comprises dans <page1> et <article1>...

Merci d'avance (même si c'est pas mal demandé, j'en suis désolé).
Woodgate est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h11.


 
 
 
 
Partenaires

Hébergement Web