Necesito crear una expresión XPath para filtrar en función del atributo que se encuentra en el espacio de nombres dado. Ejemplo XML es:Filtrado de XPath en el atributo con el espacio de nombres
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/'
xmlns:yt='http://gdata.youtube.com/schemas/2007'> ...
<entry>
<media:group>
<media:thumbnail url='http://i.ytimg.com/1.jpg' yt:name='default'/>
<media:thumbnail url='http://i.ytimg.com/2.jpg' yt:name='hqdefault'/>
<media:thumbnail url='http://i.ytimg.com/3.jpg' yt:name='start'/>
<media:thumbnail url='http://i.ytimg.com/4.jpg' yt:name='middle'/>
</media:group>
</entry>
y necesito para obtener la url del nodo con yt atributo: nombre del conjunto de 'hqdefault'.
me trataron con la expresión XPath
'./media:group/media:thumbnail[@yt:name='hqdefault']/@url'
pero parece que al especificar un espacio de nombres de atributos con yt: nombre no funciona. Obtengo una DOMNodeList vacía al hacer una consulta.
Yo soy el acceso a XML en PHP, por lo que he registrado yt espacio de nombres:
registerNamespace('yt', 'http://gdata.youtube.com/schemas/2007');
Thnx de antemano
"no funciona" - que tiene que decir lo que sucede. Un mensaje de error? – LarsH