Ruby XML语法错误

时间:2011-06-29 13:59:14

标签: ruby xml rexml

我正在尝试评估我从mysql数据库创建的4个XML文件,我想将这些XML字段的文本作为一对数据输出,这样我就可以创建一个哈希。 (例如:“Total Builds,359”)我很确定我因为使用​​块的方式而出现语法错误

以下是我要做的事情:

  while i < numberOfFiles do
            #create a document
            doc = Document.new(File.new(filenames[i]))
            doc.elements.each("//row/field")
            {
             |e|  ##Syntax error here
             name = e.attributes['name']
             text = e.text
             if name == "Total Builds"
                    puts name + ", " + text
             elsif name == "Successful Builds"
                    puts name + ", " + text
             elsif name == "Failed Builds"
                    puts name + ", " + text
             else
                    puts text.join(",")
             end
            }

我知道这个块的格式是错误的,但有没有办法在ruby中做类似的事情呢?

由于

1 个答案:

答案 0 :(得分:1)

我不明白为什么它会导致语法错误但你混合do end和花括号。我建议你不要,至少不要这么长时间。

尝试类似

的内容
doc.elements.each("//row/field") do |element|
  name = element.attributes['name']
  text = element.text
  builds = ["Total Builds", "Successful Builds", "Failed Builds"]
  if builds.include?(name)
    puts name + ", " + text
  else
    puts text.join(",")
  end
end

此外,while这样的语句不是通常在Ruby中完成的。通常它是这样的:

filenames.each do |filename|
  doc = Document.new(File.new(filename))