繁体   English   中英

Ruby REXML 混淆

[英]Ruby REXML confusion

嗨,我正在尝试从从 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

任何帮助都会很棒。 谢谢

我猜你很久以前就放弃了这个问题,但你的问题是你的“行”元素没有属性“字段”。 但是,您的“字段”元素确实具有“名称”属性。

尝试这个:

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

我会为此使用nokogiri - rexml 我总是发现这是一个问题,我的印象是它已经不再使用了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM