所以我试图用XPath解析一些WootAPI。我遇到的一个问题是,其中一些元素的名称中包含冒号,例如woot:price
或woot:condition
。现在,尝试使用XPath //rss/channel/item/woot:price
将不会获取元素woot:price
的内容,因为冒号,我想。无论如何我还能做些什么?
答案 0 :(得分:10)
冒号是因为元素具有名称空间前缀并且绑定到Woot名称空间。
您应该阅读XML namespaces and how they affect XPATH and XSLT。
如果您想在XPATH中引用Woot元素,您需要:
http://www.woot.com/
,以便在XPATH中使用该名称空间前缀时,将会理解它。local-name()
和namespace-uri()
匹配元素的谓词过滤器。
//rss/channel/item/*[local-name()='price' and namespace-uri()='http://www.woot.com/']