2011-06-28 93 views
1

嗨我想解析從我從mysql命令行工具導出的XML文件中的數據。我下面設在這裏的教程:http://www.germane-software.com/software/rexml/docs/tutorial.html提取我想要的數據,是什麼在標籤Ruby REXML混淆

XML文件:

<resultset statement='select count(id) as &apos;Builds/Month&apos; , 
CONCAT(MONT HNAME(submittime), &apos;-&apos;, 
YEAR(submittime)) as &apos;Month-Year&apos;fr om builds group by 
YEAR(submittime), MONTH(submittime)'> 
<row> 
    <field name='Builds/Month'>11</field> 
    <field name='Month-Year'>May-2010</field> 
</row> 
<row> 
    <field name='Builds/Month'>38</field> 
    <field name='Month-Year'>June-2010</field> </row> 

    <row> 
    <field name='Builds/Month'>35</field> 
    <field name='Month-Year'>July-2010</field> 
    </row> 
    <row> 
    <field name='Builds/Month'>51</field> 
    <field name='Month-Year'>August-2010</field> 
    </row> 
    <row> 
    <field name='Builds/Month'>10</field> 
    <field name='Month-Year'>September-2010</field> 
    </row> 
    .... 
    </resultset> 

這裏是我在做什麼:

doc = Document.new(File.new("month.xml")) 
doc.elements.each("//row") {|e| puts e.attributes["field"]} 

但是當我這樣做時,我得到的每個實例都是零

任何幫助都會很棒。 感謝

回答

-1

我將使用nokogiri此 - REXML我總是發現一個問題,我的印象是,它掉下來使用

+0

啊我明白了,我只選擇了它,因爲它是一本書我讀。我會看看nokogiri。謝謝。 –

1

我猜測,你放棄了在這個問題上很長一段時間的以前,但你的問題是沒有屬性「字段」爲你的'行'元素。然而,你的'field'元素確實有'name'屬性。

試試這個:

doc.elements.each("//row/field") do {|e| puts e.attributes["name"] + ' : ' + e.text}