Discussion:
Probleme de recuperation de d'attribut d'un fichier XML
(trop ancien pour répondre)
Thief13
2007-02-21 13:52:01 UTC
Permalink
Rebonjour...
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<environnement>
<variable name="nomsite" content="Site de test" />
<variable name="fuseau" content="Europe/Paris" />
<variable name="langue" content="fr_FR" />
<variable name="domaine" content="127.0.0.1" />
</environnement>
<configuration>
J'ai des problemes pour récuperer les valeurs (c'est la première fois
que je parse du XML)
$config_racine = simplexml_load_file($temp.'configuration.xml');
$config_environnement = $config_racine->environnement;
Bon, en fait, là ça peut parraitre bizzard, mais il y a des noeud autre
que environnement
/**
* Domaine du site
*
*/
define('CONF_SITE', $temp[0]['content']);
Le probleme, quand je fait comme ça, c'est que $temp[0]['content'] est
un objet simpleXML, et que ça marche pas dans la constante, alor le seul
/**
* Domaine du site
*
*/
$temp2 = $temp[0]['content']->asXml();
$temp2 = str_ireplace('', '', $temp2);
$temp2 = str_ireplace('"', '', $temp2);
$temp2 = str_ireplace('content=', '', $temp2);
define('CONF_SITE', $temp2);
Malheureusement celà ne me semble pas tres performent... Pourtant,
asXml() est la seul méthode que j'ai trouvé pour révupérer une string,
mais il m'affiche mon contenu comme ça
content="Site de test"
ç'est pour ça que je suis obligé de faire des str_ireplace() pour virer
le rab...

Y aurait-il y moyen plus performant ?
Thierry
2007-02-21 18:16:59 UTC
Permalink
re

dsl limite HC là
$config_racine = simplexml_load_file($temp.'configuration.xml');
$config_environnement = $config_racine->environnement;
$temp =
$config_racine->xpath('/environnement/variable[@name="nomsite"]/@content');

devrait te satisfaire (non testé sous simpleXML mais sablotron)
Thief13
2007-02-22 00:06:40 UTC
Permalink
Post by Thierry
re
dsl limite HC là
Désolé, mais c'est quoi HC ?
Thierry
2007-02-22 15:34:51 UTC
Permalink
Post by Thief13
Désolé, mais c'est quoi HC ?
Hors Charte

On parle plus d'un pb xPath que d'un pb PHP/simpleXML
Thief13
2007-02-23 06:43:45 UTC
Permalink
Post by Thierry
Post by Thief13
Désolé, mais c'est quoi HC ?
Hors Charte
On parle plus d'un pb xPath que d'un pb PHP/simpleXML
Ok, désolé dans ce cas... Mais c'était la manière dont la valeur était
retourné dans php, si il y a un autre moyen que xPath pour récupérer la
valeur que je veux en string, ça ma va, justemet, ce qui compte c pas le
xPath, mais comment récupérer cette valeur comme je veux avec php
Thierry
2007-02-21 18:16:59 UTC
Permalink
salut
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<environnement>
<variable name="nomsite" content="Site de test" />
<variable name="fuseau" content="Europe/Paris" />
<variable name="langue" content="fr_FR" />
<variable name="domaine" content="127.0.0.1" />
</environnement>
<configuration>
tu te simplifierais quand meme bien la vie avec un fichier du genre:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<environnement>
<nomsite>Site de test</nomsite>
<fuseau>Europe/Paris</fuseau>
<langue>fr_FR</langue>
<domaine>127.0.0.1</domaine>
</environnement>
<configuration>

et la
$nomsite = $config->environnement->nomsite;
ou à la rigeur
$nomsite = $config->environnement[0]->nomsite;
Thief13
2007-02-22 00:06:40 UTC
Permalink
Post by Thierry
$nomsite = $config->environnement->nomsite;
ou à la rigeur
$nomsite = $config->environnement[0]->nomsite;
Quel est la différence ?
Thierry
2007-02-22 15:34:51 UTC
Permalink
Post by Thief13
Post by Thierry
$nomsite = $config->environnement->nomsite;
ou à la rigeur
$nomsite = $config->environnement[0]->nomsite;
Quel est la différence ?
avec la deuxième syntaxe tu peux gérer plusieus noeuds <environnement>
Thief13
2007-02-23 06:43:45 UTC
Permalink
Post by Thierry
Post by Thief13
Post by Thierry
$nomsite = $config->environnement->nomsite;
ou à la rigeur
$nomsite = $config->environnement[0]->nomsite;
Quel est la différence ?
avec la deuxième syntaxe tu peux gérer plusieus noeuds <environnement>
Ha, donc, si comme je l'ai prévus dans mon fichier XML, il n'y a qu'un
seul noeud <environnement>, j'utilise $nomsite =
$config->environnement->nomsite; si je comprend bien
Thief13
2007-02-25 21:20:34 UTC
Permalink
Post by Thierry
$nomsite = $config->environnement->nomsite;
ou à la rigeur
$nomsite = $config->environnement[0]->nomsite;
en fait, ça ne regle toujours pas mon problème, car le résultat est le
meme : ça ne retourne pas une string, mais un objet :
object(SimpleXMLElement)#7 (1) { [0]=> string(12) "Site de test" }
Thief13
2007-02-26 12:31:13 UTC
Permalink
Post by Thief13
Post by Thierry
$nomsite = $config->environnement->nomsite;
ou à la rigeur
$nomsite = $config->environnement[0]->nomsite;
en fait, ça ne regle toujours pas mon problème, car le résultat est le
object(SimpleXMLElement)#7 (1) { [0]=> string(12) "Site de test" }
Bon, j'ai réussi à régler mon problème : que ce soit dans la
configuration de départ ou celle ci, je vous livre la solution :

$nomsite = strval($config->environnement[0]->nomsite);


et voilà ! je peut maintenant attribuer la valeur à une constante !
j'aurrais bien galéré sur ce coup.

Continuer la lecture sur narkive:
Loading...