Как извлечь атрибут элемента 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�</a>\n</span>"
1 ответ
Ваш объект span
элемент, который содержит a
элемент. Вы должны выбрать a
элемент первым, прежде чем получить доступ к атрибуту.
str = "<span class=\" subject_new\" id=\"tid_1515\">\n <a href=\"watek-nowy-pomysl_1515\">nowy pomys�</a>\n</span>"
title_area = Nokogiri::XML(str)
title_area.at('a')['href'] # => "watek-nowy-pomysl_1515"