2010-11-26 424 views
6

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

回答

10

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

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

如果你想引用你的XPATH的活泉元素,你要么需要:

  1. 声明活泉命名空间http://www.woot.com/,这样当你使用你的XPATH命名空间前缀是可以理解的。
  2. 使用更通用的XPATH语句,该语句使用谓词过滤器,使用local-name()namespace-uri()来匹配元素。
    • //rss/channel/item/*[local-name()='price' and namespace-uri()='http://www.woot.com/']
+0

1.知道如何做到这一点在Java中? 2.我尝试使用您提供的示例,但它不起作用。 :\ – Chiggins 2010-11-26 02:44:20

相关问题