所以我试图用 XPath 解析一些 WootAPI。我遇到的一个问题是,一些元素的名称中有冒号,例如 woot:pricewoot:condition 。现在,由于冒号,我认为尝试使用 XPath //rss/channel/item/woot:price 不会获取元素 woot:price 的内容。我该怎么做才能得到它?

最佳答案

冒号是因为元素具有命名空间前缀并绑定(bind)到 Woot 命名空间。

你应该仔细阅读 XML namespaces and how they affect XPATH and XSLT

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

  • 声明 Woot 命名空间 http://www.woot.com/ 以便当您在 XPATH 中使用该命名空间前缀时,它将被理解。
  • 使用更通用的 XPATH 语句,该语句使用使用 local-name()namespace-uri() 的谓词过滤器来匹配元素。
  • //rss/channel/item/*[local-name()='price' and namespace-uri()='http://www.woot.com/']
  • 关于xpath - 使用 XPath 解析包含冒号的元素名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4282147/

    10-16 00:51