gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:58:42 25 4
gpt4 key购买 nike

我只想解析一个感兴趣的 xml 元素(例如,见下文:名称等于数学的类元素),一旦第一个满足此条件的元素被解析,我想停止。 (因为只有一个类的名字是数学,一旦找到元素就没有必要继续)。

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

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

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

最佳答案

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

finish_print

Stops twig processing, flush the twig and proceed to finish printing the document as fast as possible. Use this method when modifying a document and the modification is done.

finish_now

Stops twig processing, does not finish parsing the document (which could actually be not well-formed after the point where finish_now is called). Execution resumes after the Lparse> or parsefile call. The content of the twig is what has been parsed so far (all open elements at the time finish_now is called are considered closed).

关于perl - 在 XML :TWIG, 中如何在找到感兴趣的元素后停止解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3384674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com