From 0d762646c4285437c12ddec9d0938c4ff1c3ef42 Mon Sep 17 00:00:00 2001 From: Developer Date: Wed, 16 Sep 2009 14:12:13 -0400 Subject: Allow Nokogiri XmlMini backend to process cdata elements [#3219 state:committed] Signed-off-by: Jeremy Kemper --- activesupport/lib/active_support/xml_mini/nokogiri.rb | 2 +- activesupport/test/xml_mini/nokogiri_engine_test.rb | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/activesupport/lib/active_support/xml_mini/nokogiri.rb b/activesupport/lib/active_support/xml_mini/nokogiri.rb index 847ab0152b..3b2c6a96d9 100644 --- a/activesupport/lib/active_support/xml_mini/nokogiri.rb +++ b/activesupport/lib/active_support/xml_mini/nokogiri.rb @@ -44,7 +44,7 @@ module ActiveSupport walker = lambda { |memo, parent, child, callback| next if child.blank? && 'file' != parent['type'] - if child.text? + if child.text? || child.cdata? (memo[CONTENT_ROOT] ||= '') << child.content next end diff --git a/activesupport/test/xml_mini/nokogiri_engine_test.rb b/activesupport/test/xml_mini/nokogiri_engine_test.rb index 1eeff73d32..e16f36acee 100644 --- a/activesupport/test/xml_mini/nokogiri_engine_test.rb +++ b/activesupport/test/xml_mini/nokogiri_engine_test.rb @@ -159,6 +159,17 @@ class NokogiriEngineTest < Test::Unit::TestCase XmlMini.parse(io) end + def test_children_with_cdata + assert_equal_rexml(<<-eoxml) + + + hello + morning + + + eoxml + end + private def assert_equal_rexml(xml) hash = XmlMini.with_backend('REXML') { XmlMini.parse(xml) } -- cgit v1.2.3