XML con xpath y PHP: cómo acceder al valor de texto de un atributo de una entrada

xml:

     

Esto es lo que he intentado:

 foreach($xml->entry as $feed) { $album_url = $feed->xpath("./link[@rel='alternate']/@href"); echo $album_url; } 

Probé todo tipo de permutaciones, pero no tuve suerte.

El resultado esperado sería http://picasaweb.google.com/xy/Cooking

El resultado que obtengo es “”. ¿Alguien puede explicar lo que estoy haciendo mal?

¿Puede alguien ayudarme? He estado en esto por horas …

xpath() devuelve una matriz, debe seleccionar el primer elemento de dicha matriz, en el índice 0. Atención: si no hay coincidencia, puede devolver una matriz vacía. Por lo tanto, debe agregar una if (isset($xpath[0])) , por las if (isset($xpath[0])) .

 foreach ($xml->entry as $entry) { $xpath = $entry->xpath('./link[@rel="alternate"]/@href'); if (isset($xpath[0])) { echo $xpath[0], "\n"; } } 

Estabas cerca:

 ./link[@rel='alternate']/@href 

Debe ser el XPath correcto para obtener esos valores.