在XML中:TWIG,一旦找到感兴趣的元素,如何停止解析

时间:2010-08-02 02:39:05

标签: perl xml-twig

我只想解析一个感兴趣的xml元素(例如见下面:名称等于math的类元素),我想在解析遇到这个条件的第一个元素时停止。 (因为只有一个名为math的类,所以一旦找到元素就没有必要继续)。

但是,如果我按如下方式实现,代码在找到我感兴趣的元素之后继续读取整个文件(xml文件很长,因此需要很长时间)。我的问题是如果解析了名为= math的第一个类元素后如何停止它?

my $twig = new XML::Twig(TwigRoots => {"class[\@name='math']" => \&class}); $twig->parsefile( shift @ARGV );

此外,我还希望在解析后从xml文件(不仅是内存)中删除此类,以便下次解析具有其他名称的类时,不会解析类元素。有可能吗?

1 个答案:

答案 0 :(得分:6)

您正在寻找的是XML :: Twig的finish_printfinish_now

  

finish_print

     

停止树枝处理,冲洗树枝并继续完成打印   文件尽快。使用   修改文档时使用此方法   并且修改完成了。

     

finish_now

     

停止twig处理,没有完成解析文档(哪个   实际上可能没有良好的形式   在finish_now之后的点之后   所谓的)。执行后继续执行   Lparse>或parsefile调用。内容   树枝是经过解析的   远(当时所有开放的元素   调用finish_now被认为   闭)。