对节点名称中带冒号的XML节点进行XPath查询

时间:2011-01-27 13:48:08

标签: xpath

哪个XPath查询将在以下XML中选择<media:thumbnail />节点?

<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来自此RSS feed

3 个答案:

答案 0 :(得分:35)

您需要了解命名空间以及如何在XPath引擎中定义/注册命名空间,以便您可以在该注册命名空间中使用关联的前缀作为名称。 xpath标签中有很多问题,询问如何使用命名空间中的名称 - 并得到很好的答案。搜索它们。

一个非常粗略的答案(完全忽略命名空间)是:

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

答案 1 :(得分:1)

/ item / * [local-name()='thumbnail']对我有用

答案 2 :(得分:0)

如果要循环XmlNodeList数组 只需使用*[local-name()='thumbnail']