Как удалить теги <! [CDATA []]> со всего текста в XML, используя Hpricot?

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

3 ответа

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


doc.search("*") do |element|
 element.swap element.content if element.kind_of? Hpricot::CData
end


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

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

Новое авиационное краш-шоу Reno показывает влияние Подросток ловит 800-килограммовый gator Возобновление карьерного поста "не спрашивайте" отменить Жуткие юбки peepers Автобус размером с спутник, чтобы попасть на Землю... "DWTS" бросает бальный зал в первый раз Что вызвало смерть тренера на SeaWorld? Что привело к отрицанию помилования Троя Дэвиса?

licensed under cc by-sa 3.0 with attribution.