как удалить теги ‹![CDATA[ ]]› из текста в XML с помощью Hpricot?

я просто хочу текст оттуда без этих тегов. Есть ли у Hrpicot.XML какие-либо методы для этого?


person loosecannon    schedule 22.08.2010    source источник


Ответы (2)


используйте element.inner_text вместо #inner_html, и он удалит их для вас

person loosecannon    schedule 22.08.2010
comment
Вы, вероятно, захотите, чтобы #inner_text.strip избавился от (почти гарантированно) посторонних пробелов. - person Simon; 28.01.2013

doc = Hpricot::XML(open('http://www.cnn.com/.element/ssi/www/auto/2.0/video/xml/most_popular.xml'))
(doc/:cnn_video/:video).each do |status|
  ['tease_txt'].each do |el|
    puts "#{status.at(el).inner_text}"
  end
end

Пример вывода (выглядит как спам, но это не спам!):

Новое видео авиакатастрофы в Рино показывает последствия
Подросток поймал 800-килограммового аллигатора
Возобновление карьеры после отмены «не спрашивайте»
Жуткие подглядывающие за юбками
Спутник размером с автобус совершит столкновение с Землей ...< br> Актёрский состав DWTS впервые попал в бальный зал
Что стало причиной смерти тренера в SeaWorld?
Что привело к отказу Троя Дэвиса в помиловании?

person Sarvesh    schedule 20.09.2011