2009-10-16 5 views
2

je suis jouer avec l'API flickr ces derniers temps et ayant des difficultés à l'analyse de leur réponse à extraire les informations dont j'ai besoin,Comment s'y rendre certaine valeur d'attribut dans un élément avec plusieurs valeurs à l'aide XPath PHP

est ici une réponse de l'échantillon:

− 
<rsp stat="ok"> 
− 
<sizes canblog="0" canprint="0" candownload="1"> 
<size label="Square" width="75" height="75" source="http://farm3.static.flickr.com/2306/1555710063_d2c1e7e7cd_s.jpg" url="http://www.flickr.com/photos/[email protected]/1555710063/sizes/sq/" media="photo"/> 
<size label="Thumbnail" width="100" height="67" source="http://farm3.static.flickr.com/2306/1555710063_d2c1e7e7cd_t.jpg" url="http://www.flickr.com/photos/[email protected]/1555710063/sizes/t/" media="photo"/> 
<size label="Small" width="240" height="160" source="http://farm3.static.flickr.com/2306/1555710063_d2c1e7e7cd_m.jpg" url="http://www.flickr.com/photos/[email protected]/1555710063/sizes/s/" media="photo"/> 
<size label="Medium" width="500" height="333" source="http://farm3.static.flickr.com/2306/1555710063_d2c1e7e7cd.jpg" url="http://www.flickr.com/photos/[email protected]/1555710063/sizes/m/" media="photo"/> 
<size label="Original" width="1280" height="853" source="http://farm3.static.flickr.com/2306/1555710063_e081a6600a_o.jpg" url="http://www.flickr.com/photos/[email protected]/1555710063/sizes/o/" media="photo"/> 
</sizes> 
</rsp> 

maintenant je besoin de l'obtenir juste la valeur d'attribut source où la valeur d'attribut de taille est moyenne

voici comment je suis en train de le faire avec XPath

$xml = new SimpleXMLElement($result); 
$path = '//size[label="Medium"]@source'; 
$url $xml->xpath($path); 

J'ai essayé toutes sortes de combinaisons de requête XPath, mais je ne peux pas obtenir à la bonne requête

des idées à ce sujet?

Répondre

3

OK ressemble tellement la bonne combinaison qui a fait ce travail est

'//size[@label="Medium"]/@source' 

Merci les gars :)

+1

Je suis content que vous ayez résolu cela. Pourriez-vous s'il vous plaît marquer ceci comme vous résolvez la réponse. –

0

Citation de fermeture manquante après Moyenne.

+0

désolé juste faute de frappe :) –

1

Je pense que vous avez un mising @ pour label parce qu'il est un attribute:

'//size[@label="Medium"]@source' 
+0

Merci j'ai essayé mais ça ne fonctionne pas en disant 'expression invalide' –

Questions connexes