2012-04-16 90 views
-1

是否可以在Nokogiri SAX解析器中解析和存储xml文件根属性?Nokogiri sax解析根属性

如何一个得到ID值和超时值在根元素?:

<root id="01" expires="2010-10-01"> 
    <aaa>Text</aaa> 
    <bbb>Text</bbb> 
</root> 

回答

1

引入nokogiri文件提供了关于如何使用SAX解析器解析XML并获得你所需要的一个例子。看看这里:http://nokogiri.org/Nokogiri/XML/SAX/Document.html

+0

是的,我知道,我知道如何使用所有这些方法。但是在sax解析时没有关于如何获得根元素的文档。 – SHUMAcupcake 2012-04-16 13:05:49

+2

为解析的每个标签调用_start_element_。至于根元素,它将在第一次调用该方法时使用。尝试使用您的xml示例代码。 – 2012-04-16 13:13:40

2

像@ luis.parvicini说,* start_element被称为每个标记解析。至于根元素,这将是第一次调用该方法*

所以我做了这样的事情:

class MyDocument < Nokogiri::XML::SAX::Document 
    def initialize 
    @infodata = {} 
    end 

    def start_element name, attrs = [] 
    @attrs = attrs 
    @content = '' 

    if name == 'rootname' 
     @infodata[:id] = Hash[@attrs]["id"] 
     @content = '' 
    end 
    end 
end