Page 1 sur 1

lecture d'un XML

Posté : 11 juil. 2012, 11:43
par smn
Bonjour,
Voilà j'ai un problème pour lire un xml avec Xpath.

Voici mon fichier XML

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8"?> <mycode> <urls> <url id="40857"> <location>www.site1.fr</location> <keywords> <keyword id="539773"> <name>mot cles 1</name> <position>2</position> </keyword> ..... </keywords> ... </url> </urls> </mycode>
Je cherche à avoir toutes les valeurs location, keyword uniquement mot clés 1 et position 1

J'ai commencé juste avec ce bout de code mais je galère déjà :
$xml = simplexml_load_string($xml);
echo '<ul>';
foreach($xml->xpath("/urls/url@id/location/") as $item)
{
   echo '<li>'.$item->location.'</li>';
}
echo '</ul>';
et voici l'erreur :
Warning: SimpleXMLElement::xpath() [simplexmlelement.xpath]: Invalid expression
Warning: Invalid argument supplied for foreach()
Pouvez-vous m'aider ?

Re: lecture d'un XML

Posté : 11 juil. 2012, 11:50
par dix2
salut,

il faut mettre des crochets :
$xml->xpath("/urls/url[@id]/location/")

@+
dix2

Re: lecture d'un XML

Posté : 11 juil. 2012, 17:32
par smn
Merci pour cette première réponse, en mettant les crochets, j'ai une nouvelle erreur
Warning: SimpleXMLElement::xpath() [simplexmlelement.xpath]: Invalid expression

Warning: SimpleXMLElement::xpath() [simplexmlelement.xpath]: xmlXPathEval: evaluation failed

Warning: Invalid argument supplied for foreach()
Qu'en pensez-vous ?

Re: lecture d'un XML

Posté : 11 juil. 2012, 19:21
par smn
c'est bon j'ai trouvé mon erreur :
il fallait mettre :
$xml->xpath("//url[@id]")

Merci