【问题标题】:Write array to xml Ruby将数组写入 xml Ruby
【发布时间】:2016-11-14 13:51:01
【问题描述】:

我需要生成带有下一个字段的测试结果的简单文件:

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>

【问题讨论】:

  • 您当前的解决方案有什么问题?

标签: arrays ruby xml


【解决方案1】:

一些注意事项:

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

如果您对来自 Nokogiri::XML::Builder 的字符串和在 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>

【讨论】:

  • 如何在我的 xml 初始化中设置 xml 的编码?
猜你喜欢
  • 2016-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
相关资源
最近更新 更多