当节点具有xmlns属性时,Nokogiri发现css失败

时间:2014-02-05 16:15:01

标签: css ruby-on-rails xpath nokogiri xml-namespaces

简单查询:

Nokogiri::XML('<a xmlns=""></a>').css("a")

返回:

Nokogiri::XML::XPath::SyntaxError: // :a
from nokogiri/XmlXpathContext.java:123:in `evaluate'

但:

Nokogiri::XML('<a xmlns=""></a>').xpath("a")

返回:

[#<Nokogiri::XML::Element:0x3864 name="a">]

Nokogiri宝石的错误吗?或者我做错了什么?

编辑:我正在使用jruby 1.7.10和nokogiri 1.6.1

1 个答案:

答案 0 :(得分:1)

jruby nokogiri与C版完全不同,他们使用不同的引擎。不幸的是,命名空间问题是众所周知的,github问题中存在一些不同的问题:

这是最重要的一个。 https://github.com/sparklemotion/nokogiri/issues/902

我遇到了同样的问题,但未能找到好的工作。我正在尝试解析html,所以对于我的jruby版本,我只是包装jsoup(一个java库)