Ruby 中断Nokogiri SAX解析器?

Ruby 中断Nokogiri SAX解析器?,ruby,nokogiri,Ruby,Nokogiri,我使用Nokogiri SAX解析器查找XML文档中的特定片段,但一旦完成,就没有理由继续扫描文档 有没有办法立即终止解析?在查看了Nokogiri的源代码之后,我认为这是不可能的 Nokogiri会在某个时刻响应某些Ruby方法或返回值,需要调用libxml2。因为: 我在中的任何地方都没有看到此函数(包括的源代码),并且 我在谷歌搜索时没有找到任何点击率 我得出的结论是,Nokogiri目前没有任何办法停止解析。你能不能用一个例外来解释一下?这将是非常令人讨厌的,对例外制度的滥用,我应该为自

我使用Nokogiri SAX解析器查找XML文档中的特定片段,但一旦完成,就没有理由继续扫描文档


有没有办法立即终止解析?

在查看了Nokogiri的源代码之后,我认为这是不可能的

Nokogiri会在某个时刻响应某些Ruby方法或返回值,需要调用libxml2。因为:

  • 我在中的任何地方都没有看到此函数(包括的源代码),并且
  • 我在谷歌搜索时没有找到任何点击率

  • 我得出的结论是,Nokogiri目前没有任何办法停止解析。

    你能不能用一个例外来解释一下?这将是非常令人讨厌的,对例外制度的滥用,我应该为自己的想法做一些忏悔。@muistoshort,你这个可怕的,可怕的人+不过,对于这个想法,我只有1个理由。:)尽管如此,我还是有点担心它可能会让一些内存从libxml2 SAX解析器的耳朵中泄漏出来,而libxml2 SAX解析器可能永远都无法确保它被清理干净。它确实有效,但我羞于将其作为一个答案。感谢Phrogz的调查!我想我会让它解析整个文档,并在处理过程中再做一些合理性检查@MeistoStope-事实上我也考虑过XD。扩展例外概念,使用<代码>抛出:FuffeldDyMault919155<代码>和<代码> catch:FuffeldDySimult919155<代码>似乎不那么罪恶。(或使用
    Object.new
    创建唯一的令牌)