Xpath question

Eléphanteau du PHP | 10 Messages

26 févr. 2007, 14:25

Bonjour,
J'ai un fichier xml qui contient des données comme ceci

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8"?> <parameters> <config host="255.255.255.0"> <!-- The name of the installation folder --> <folder>InstallatioFolderName</folder> <!-- Outgoing email address --> <email>email</email> <!-- Default home page address --> <homepage section="site" menu="" filename="" /> </config> <config host="127.0.0.1"> <!-- The name of the installation folder --> <folder>InstallatioFolderName</folder> <!-- Outgoing email address --> <email>email</email> <!-- Default home page address --> <homepage section="site" menu="" filename="" /> </config> </parameters>
Avec simple XML, j'aimerai sélectionner avec XPath directement la bonne config et y accèder, j'ai donc essayer qqch du genre
$parameters = simplexml_load_file('config.xml');
$parameters = $parameters->xpath("//config[@host='127.0.0.1']");
$conf = $parameters;

print 'Host : '.$conf['host'].'<br>';
print 'Installation Folder name : '.$conf->folder.'<br>';
Mais je n'arrive pas à accèder aux valeur comme ça... les variables
$conf['host'] et $conf->folder ne me retournent rien.

Est ce qqun sait ou j'ai fait l'erreur? ou est ce que c'est tout simplement pas possible?


Merci d'avance


David

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

08 mars 2007, 15:31

Si tu fais un
print_r($conf);
...tu verras que xpath() renvoit un groupe de nœuds dans un tableau et non un seul nœud, comme l'indique le manuel. Si tu veux accéder au premier nœud correspondant à ton expression, tu n'as qu'à corriger $conf en
$conf = $parameters[0];