2011-01-27 14 views
18

Jakie zapytanie XPath wybierze węzeł <media:thumbnail /> w następującym kodzie XML?Zapytanie XPath dla węzła XML z dwukropkiem w nazwie węzła

<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> 

XML pochodził z tej RSS feed.

+4

Że „węzeł z dwukropkiem” jest węzłem używając nazw XML ** ** (zdefiniowany w węzeł) - musisz dowiedzieć się, co to jest i jak sobie z nimi radzić - patrz http: // www. intertwingly.net/stories/2002/09/09/gentleIntroductionToNamespaces.html –

+0

Jakiego języka/systemu/środowiska programowania używasz? –

+0

@marc_s: Dziękuję za szybką odpowiedź. Używam C++/libxml2 – Izmoto

Odpowiedz

23

Musisz nauczyć się nazw i jak definiować/rejestracji nazw w silniku XPath, dzięki czemu można następnie użyć skojarzony prefiks nazwy zarejestrowanej w tej przestrzeni nazw. W pytaniu xpath znajduje się mnóstwo pytań z pytaniem, jak używać nazw znajdujących się w przestrzeni nazw - z dobrymi odpowiedziami. Szukaj ich.

bardzo szorstka odpowiedź (pomijając nazw w ogóle) jest:

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

Dziękuję bardzo :-) – Izmoto

+0

@Izmoto: Nie ma za co. –

+0

jak napisać xpath, jeśli media: miniatura zawiera element potomny z mediami: image i musieliśmy pobrać media: element obrazu – bkk

Powiązane problemy