我正在尝试评估我从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中做类似的事情呢?
由于
答案 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))