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

Izm*_*oto 26 xpath

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

<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>
Run Code Online (Sandbox Code Playgroud)

XML来自此RSS源.

Dim*_*hev 36

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

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

//*[name()='media:thumbnail']
Run Code Online (Sandbox Code Playgroud)

  • @bhatkrishnakishor,使用`//*[name()='media:thumbnail']/*[name()='media:image']` (2认同)

Sky*_*han 7

对我有用的是:

/item/*[local-name()='thumbnail']
Run Code Online (Sandbox Code Playgroud)