Ruby 如何删除<;![CDATA[]]>;使用Hpricot从XML中的文本周围添加标记?

Ruby 如何删除<;![CDATA[]]>;使用Hpricot从XML中的文本周围添加标记?,ruby,xml,hpricot,xml-parsing,Ruby,Xml,Hpricot,Xml Parsing,我只想把那些标签去掉。Hrpicot.XML是否有用于此的方法 使用element.inner_text而不是#inner_html,它会为您删除它们 doc.search("*") do |element| element.swap element.content if element.kind_of? Hpricot::CData end 示例输出(看起来像垃圾邮件,但这不是垃圾邮件!): 新雷诺空难视频显示影响 青少年抓到800磅的鳄鱼 恢复职业岗位“不问”废除 令人毛骨悚然的短

我只想把那些标签去掉。Hrpicot.XML是否有用于此的方法

使用element.inner_text而不是#inner_html,它会为您删除它们

doc.search("*") do |element|
    element.swap element.content if element.kind_of? Hpricot::CData
end
示例输出(看起来像垃圾邮件,但这不是垃圾邮件!):

新雷诺空难视频显示影响
青少年抓到800磅的鳄鱼
恢复职业岗位“不问”废除
令人毛骨悚然的短裙窥视者
公共汽车大小的卫星将撞击地球…
“DWTS”剧组首次在舞厅演出
是什么导致驯兽师在海洋世界死亡的?
是什么导致了特洛伊·戴维斯否认赦免

您可能需要一个#inner_text.strip来消除(几乎可以保证)无关的空白。
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