2014-02-05 3 views
1

Простой запрос:Nokogiri найти CSS терпит неудачу, когда узел имеет атрибут XMLNS

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">] 

Это ошибка в драгоценности Нокогири? Или я делаю что-то неправильно?

EDIT: Я использую JRuby 1.7.10 и 1.6.1 nokogiri

+0

Какую версию Nokogiri вы используете? Попробуйте 'nokogiri -v' в командной строке. v1.6.1 является текущим. –

+0

'pry (main)> Nokogiri :: VERSION =>" 1.6.1 "' ... Вы попробовали? И работает ли запрос css? – mirelon

ответ

1

JRuby nokogiri довольно сильно отличается от версии C, они используют разные двигатели. К сожалению, проблема с пространством имен хорошо известна, и в вопросах github есть несколько разных проблем:

вот большой. https://github.com/sparklemotion/nokogiri/issues/902

У меня была такая же проблема, и мне не удалось найти хорошую работу. Я пытаюсь разобрать html, поэтому для моей версии jruby я просто обертываю jsoup (java-библиотеку)

Смежные вопросы