代码之家  ›  专栏  ›  技术社区  ›  tknv

找到第一个元素时,如何停止解析?

  •  0
  • tknv  · 技术社区  · 17 年前

    我想在找到第一个元素时停止解析,即使之后还有更多相同的元素。 我使用libxml,SAX和ruby。
    <usr> 要素
    但我想在找到第一个时停止解析 <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
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   jldupont    17 年前

    我不知道这是否也适用于Ruby,但对于PythonSAX模块,必须抛出异常才能退出“解析”阶段。。。这是唯一不被黑客攻击的方法。

    我想如果您在Ruby文档中没有找到方法,那可能意味着我的建议是合理的;-)