Rails: анализ XML-документа с одинаковыми путями - PullRequest
0 голосов
/ 28 октября 2011

У меня есть документ с такими же путями. Например:

 xml_doc = Nokogiri::XML(response.body)
  photo = xml_doc.xpath('person').xpath('photos').xpath('photo').xpath('url').inner_text

Возвращает несколько фотографий (поскольку все фотографии имеют одинаковые имена путей).

Как я могу сказать Нокогири, чтобы он просто вернул первый? Или тот, у которого внутри есть строка?

Спасибо

Ответы [ 2 ]

0 голосов
/ 16 ноября 2011

Вы также можете использовать метод at_css:

 xml_doc.at_css('person photos photo url')
 # just css will return all, just like xpath
 xml_doc.css('person photos photo url')

Лично я считаю css и at_css гораздо более интуитивно понятным и более простым в использовании.

0 голосов
/ 28 октября 2011
xml_doc.xpath('person/photos/photo/url')[0]

или

xml_doc.xpath('person/photos/photo/url[not(text()="")]')[0]
...