diff --git a/.gitignore b/.gitignore index 81e17c8..ee7b914 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ *~ *# #*# +.DS_Store # Config file .babelish diff --git a/lib/babelish/android2csv.rb b/lib/babelish/android2csv.rb index b6e6ffd..d8d777a 100644 --- a/lib/babelish/android2csv.rb +++ b/lib/babelish/android2csv.rb @@ -15,7 +15,11 @@ def load_strings(strings_filename) end parser.xpath("//string").each do |node| if !node.nil? && !node["name"].nil? - strings.merge!(node["name"] => node.inner_html) + if node.children.first.class.to_s == "Nokogiri::XML::CDATA" + strings.merge!(node["name"] => "") + else + strings.merge!(node["name"] => node.inner_html) + end end end diff --git a/test/babelish/test_android2csv.rb b/test/babelish/test_android2csv.rb index d38a43e..802c6e5 100644 --- a/test/babelish/test_android2csv.rb +++ b/test/babelish/test_android2csv.rb @@ -50,4 +50,23 @@ def test_special_chars # clean up system("rm -rf ./" + csv_filename) end + + def test_cdata_are_not_removed + csv_filename = "./test.csv" + filename = "test/data/android_cdata.xml" + headers = %w{variables german} + + expected_output = [["html"], {filename => {"html" => "Text

]]>"}}] + converter = Babelish::Android2CSV.new( + :csv_filename => csv_filename, + :headers => headers, + :filenames => [filename]) + + output = converter.convert(false) + + assert_equal expected_output, output + + # clean up + system("rm -rf ./" + csv_filename) + end end diff --git a/test/data/android_cdata.xml b/test/data/android_cdata.xml new file mode 100644 index 0000000..29189d0 --- /dev/null +++ b/test/data/android_cdata.xml @@ -0,0 +1,4 @@ + + +Text

]]> +