1

こんにちは、mysql コマンド ライン ツールからエクスポートした XML ファイルからデータを解析しようとしています。ここにあるチュートリアルに従っています: http://www.germane-software.com/software/rexml/docs/tutorial.htmlタグに含まれている必要なデータを抽出する

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"]}

しかし、私がこれを行うと、すべてのインスタンスで nil が得られます

どんな助けでも素晴らしいでしょう。ありがとう

4

2 に答える 2

1

あなたはずっと前にこの質問をあきらめたと思いますが、あなたの問題はあなたの「行」要素に属性「フィールド」がなかったということでした。ただし、「field」要素には「name」属性があります。

これを試して:

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

于 2012-04-23T20:22:51.600 に答える
-1

これにはnokogiriを使用し ます-rexmlは常に問題であることがわかりましたが、使用されなくなっているという印象です

于 2011-06-28T18:24:39.987 に答える