Xpath : Obtenir valeur d'un noeud

Signaler
Messages postés
34
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
24 septembre 2014
-
Messages postés
33165
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 août 2021
-
Bonjour,

Je pense avoir un soucie vraiment bête, mais je ne parviens pas à trouver la solution.

J'ai un fichier XML qui comporte une multitude de donnée mais la partie qui m'intéresse actuellement est celle ci :
<?xml version="1.0" encoding="utf-8"?>
....
    <paths>
        <folder type="css">css</folder>
        <folder type="js">javascript</folder>
        <folder type="lang">language</folder>
        <folder type="tpl">template</folder>
    </paths>
....


Je voudrai récupérer la valeur "language" du noeud comportant l'attribut "type" ayant la valeur "lang" (Je sais pas si je suis bien clair la :x)

En faisant comme ceci, bien évidement, je n'y parviens pas :

$xml = simplexml_load_file($xmlfile);
$result = $xml->xpath('/paths/folder[@type="lang"]');
var_dump($result);


j'ai modifier aussi le Xpath comme ceci :

$result = $xml->xpath('/paths[folder[@type="lang"]]');


J'ai beau faire des recherches avec mon ami et essayer de multiples formules Xpath mais je n'arrive pas à récupérer cette foutue valeur "language".

Si quelqu'un à la solution, je suis preneur ;)

Cordialement.

2 réponses

Messages postés
34
Date d'inscription
mercredi 26 octobre 2005
Statut
Membre
Dernière intervention
24 septembre 2014

Personne n'a un idée ? ou c'est tellement bête que personne veux se donner la pêne de m'aider :p
Messages postés
33165
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 août 2021
351
A mon avis... c'est que personne (actuellement) n'a d'idée...

Mais bon, je pense avoir la réponse:

$xmlfile="test.xml";
if (file_exists($xmlfile)) {
    $xml = simplexml_load_file($xmlfile);
		$result = $xml->xpath('./folder[@type="lang"]');
		echo "<br><b>La valeur est :</b>:".$result[0]."<br>";
}else{

echo "<br> ERROR !";
}