2012-04-16 92 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