2011-01-27 34 views
18

¿Qué consulta de XPath seleccionará el nodo <media:thumbnail /> en el siguiente XML?Consulta de XPath para nodo XML con dos puntos en el nombre de nodo

<item> 
    <title>Sublime Federer crushes Wawrinka</title> 
    <description>Defending champion Roger Federer cruises past Stanislas Wawrinka 6-1 6-3 6-3 to take his place in the Australian Open semi-finals.</description> 
    <link>http://news.bbc.co.uk/go/rss/-/sport2/hi/tennis/9372592.stm</link> 
    <guid isPermaLink="false">http://news.bbc.co.uk/sport1/hi/tennis/9372592.stm</guid> 
    <pubDate>Tue, 25 Jan 2011 04:21:23 GMT</pubDate> 
    <category>Tennis</category> 
    <media:thumbnail width="66" height="49" url="http://news.bbcimg.co.uk/media/images/50933000/jpg/_50933894_011104979-1.jpg"/> 
</item> 

El XML vino de este RSS feed.

+4

Ese "nodo con dos puntos" es un nodo utilizando un espacio de nombres XML ** ** (definido en el nodo) - necesita conocer qué son y cómo lidiar con ellos - consulte http: // www. intertwingly.net/stories/2002/09/09/gentleIntroductionToNamespaces.html –

+0

¿Qué lenguaje de programación/sistema/entorno estás usando? –

+0

@marc_s: gracias por su rápida respuesta. Estoy usando C++/libxml2 – Izmoto

Respuesta

23

Necesita aprender sobre los espacios de nombres y cómo definir/registrar un espacio de nombres en su motor XPath para que luego pueda usar el prefijo asociado para los nombres en ese espacio de nombres registrado. Hay muchas preguntas en la etiqueta xpath que le preguntan cómo usar nombres que están en un espacio de nombres, con buenas respuestas. Búscalos.

una respuesta muy áspero (ignorando espacios de nombres en absoluto) es:

//*[name()='media:thumbnail'] 
+0

Muchas gracias :-) – Izmoto

+0

@Izmoto: De nada. –

+0

cómo escribir el xpath si los medios: miniatura tenían elemento hijo con los medios: imagen y tuvimos que obtener los medios: elemento de imagen – bkk

Cuestiones relacionadas