我想在找到第一个元素时停止解析,即使之后有更多相同的元素。
我在ruby上使用libxml,SAX
此代码显示每个<usr>
元素
但是我想在找到第1 <usr>
时停止解析
因为这个XML文件会很庞大。
有没有人知道在通过SAX方法找到第一个元素时如何停止解析。
#! ruby -Ku
require 'rubygems'
require 'libxml'
include LibXML
class PostCallbacks
include XML::SaxParser::Callbacks
def on_start_element(element, attributes)
if /usr/ =~ element
p element
end
end
end
parser = XML::SaxParser.file('test.xml')
parser.callbacks = PostCallbacks.new
parser.parse
感谢。
答案 0 :(得分:1)
我不知道这是否也适用于Ruby,但对于Python SAX模块,必须抛出异常才能退出“解析”阶段......这是唯一的方法,无需黑客攻击。
我想如果你在Ruby文档中找不到方法,那可能意味着我的提议是明智的; - )