2011-06-29 69 views
1

我想評估4個從mysql數據庫創建的XML文件,我想輸出這些XML字段的文本作爲一對數據,因此我可以創建一個哈希。 (例:「總的構建,359」),我敢肯定我得到我使用的是塊Ruby XML語法錯誤

這裏的,因爲這樣一個語法錯誤是什麼,我試圖做的:

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

我不明白爲什麼它會導致一個語法錯誤,但你混合doend和大括號。我建議你不要,至少不要這麼長時間。

嘗試像

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)) 
+0

必須已經從Cygwin的複製問題,因爲我有兩個括號結束我的屏幕上 –

+0

感謝,看起來很大的幫助 –