将数组写入xml Ruby

时间:2016-11-14 13:51:01

标签: arrays ruby xml

我需要使用下一个字段生成包含测试结果的简单文件:

Total N
Pass N
Fail N

Failed: testName1
...
Failed: testNameN

我使用Nokogiri编写xml文件。 对于前3个字段,我有下一个代码:

xml = Nokogiri::XML::Builder.new { |xml| 
xml.body do
    xml.Total total
    xml.Pass pass
    xml.Fail fail
    end
}.to_xml

我的测试名称失败。我需要迭代思考该数组并使用nokogiri将每个失败的测试名称写入此xml文件。怎么做? 我想要这样的东西:

<failed> testname1 </failed>
<failed> testname2 </failed>
<failed> testnameN </failed>

1 个答案:

答案 0 :(得分:0)

一些注意事项:

failraise的同义词,不应用作变量名。

如果对Nokogiri :: XML :: Builder中的String和Builder块中使用的绑定变量使用xml,可能会造成混淆。

require 'nokogiri'

total = 5
pass_count = 3
fail_count = 2

failed_tests = ["test_name_1", "test_name_3"]

xml_content = Nokogiri::XML::Builder.new { |xml| 
  xml.body do
    xml.Total total
    xml.Pass pass_count
    xml.Fail fail_count

    xml.failed do
      failed_tests.each do |failed_test|
        xml.failed failed_test
      end
    end

  end
}.to_xml

puts xml_content

# <?xml version="1.0"?>
# <body>
#  <Total>5</Total>
#  <Pass>3</Pass>
#  <Fail>2</Fail>
#  <failed>
#    <failed>test_name_1</failed>
#    <failed>test_name_3</failed>
#  </failed>
# </body>