使用XPath解析包含冒号的元素名称

时间:2010-11-26 02:26:53

标签: xpath

所以我试图用XPath解析一些WootAPI。我遇到的一个问题是,其中一些元素的名称中包含冒号,例如woot:pricewoot:condition。现在,尝试使用XPath //rss/channel/item/woot:price将不会获取元素woot:price的内容,因为冒号,我想。无论如何我还能做些什么?

1 个答案:

答案 0 :(得分:10)

冒号是因为元素具有名称空间前缀并且绑定到Woot名称空间。

您应该阅读XML namespaces and how they affect XPATH and XSLT

如果您想在XPATH中引用Woot元素,您需要:

  1. 声明Woot名称空间http://www.woot.com/,以便在XPATH中使用该名称空间前缀时,将会理解它。
  2. 使用更通用的XPATH语句,该语句使用使用local-name()namespace-uri()匹配元素的谓词过滤器。
    • //rss/channel/item/*[local-name()='price' and namespace-uri()='http://www.woot.com/']