Как извлечь атрибут элемента XML

Я сузил URL-адреса, которые я хотел бы извлечь из веб-страницы, используя Nokogiri.

К сожалению, когда я пытаюсь получить атрибут от этого объекта, я не могу. Это там, я даже могу видеть это, но я не знаю, как получить URL.

Пожалуйста, взгляните на этот объект Нокогири. Я пытался использовать url = titleArea.attr("href") так же как url = titleArea.attribute("href"),

Что меня интересует, так это:

[#<Nokogiri::XML::Attr:0x3fdc727d8d98 name="href"
    > value="watek-nowy-pomysl_1515">]

С этого объекта:

> #<Nokogiri::XML::Element:0x3fdc72796f9c name="span" attributes=[#<Nokogiri::XML::Attr:0x3fdc727d9bd0 name="class" value="
> subject_new">, #<Nokogiri::XML::Attr:0x3fdc727d9bbc name="id"
> value="tid_1515">] children=[#<Nokogiri::XML::Element:0x3fdc727d8f64
> name="a" attributes=[#<Nokogiri::XML::Attr:0x3fdc727d8d98 name="href"
> value="watek-nowy-pomysl_1515">]
> children=[#<Nokogiri::XML::Text:0x3fdc727d808c "nowy pomys�">]>]>

.to_s представление красиво и красиво, но я не могу извлечь href из строки, мне нужно использовать функциональность Nokogiri:

"<span class=\" subject_new\" id=\"tid_1515\">\n  <a href=\"watek-nowy-pomysl_1515\">nowy pomys&#xC5;&#xFFFD;</a>\n</span>"

1 ответ

Ваш объект span элемент, который содержит a элемент. Вы должны выбрать a элемент первым, прежде чем получить доступ к атрибуту.

str = "<span class=\" subject_new\" id=\"tid_1515\">\n  <a href=\"watek-nowy-pomysl_1515\">nowy pomys&#xC5;&#xFFFD;</a>\n</span>"
title_area = Nokogiri::XML(str)
title_area.at('a')['href'] # => "watek-nowy-pomysl_1515"
Другие вопросы по тегам