您好,我正在尝试解析出我从mysql命令行工具导出的XML文件中的数据。我遵循位于此处的教程:http://www.germane-software.com/software/rexml/docs/tutorial.html来提取我想要的数据,这就是标签中的数据
XML文件:
<resultset statement='select count(id) as 'Builds/Month' ,
CONCAT(MONT HNAME(submittime), '-',
YEAR(submittime)) as 'Month-Year'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"]}但是当我这样做的时候,我得到的每一个实例都是零
任何帮助都是最好的。谢谢
发布于 2011-06-29 02:24:40
我会使用nokogiri - rexml我总是发现这是一个问题,我的印象是它已经不再使用了
发布于 2012-04-24 04:22:52
我猜你很久以前就放弃了这个问题,但你的问题是'row‘元素没有'field’属性。但是,您的'field‘元素确实具有'name’属性。
试试这个:
doc.elements.each("//row/field") do {|e| puts e.attributes["name"] + ' : ' + e.text}
https://stackoverflow.com/questions/6510955
复制相似问题