gpt4 book ai didi

groovy - 是否可以使用 Groovy XMLSlurper 解析子树

转载 作者:行者123 更新时间:2023-12-02 08:35:08 31 4
gpt4 key购买 nike

有谁知道是否可以以某种方式使用 XMLSlurper,这意味着可以从非常大的 XML 文档中提取各个子树并单独进行处理?

假设您有一个巨大的 XML 提要,其中包含一个根元素,该根元素具有数千个可以单独处理的直接子元素。显然,将整个文档读入内存是不允许的,但是,由于根的每个子元素本身大小适中,因此最好能够流式传输文档,但依次将 XMLSlurper 的优点应用于每个子元素。当处理每个子元素时,垃圾收集可以清理用于处理它的内存。通过这种方式,我们可以非常轻松地使用 XMLSlurper(如此简洁的语法),并且流式传输(例如 SAX)内存占用较低。

我很想知道是否有人对此有想法和/或您自己是否遇到过此要求。

最佳答案

初始化 XmlSlurper 实例意味着调用其重载的 parse(..) 方法之一(或 parseText(String) 方法) 。在此调用后,XmlSlurper 将(至少使用 SAX 事件)构造一个内存中的 GPathResult,它保存有关 XML 元素和属性及其结构的完整信息。

所以,不,XmlSlurper 仅提供用于解析 XML 文档部分的 API。

可以做的是,扩展XmlSlurper,覆盖parse*(..)方法,通过以下方式预处理XML using a custom SAX handler ,收集所需的 XML 部分,并将它们转发到 XmlSlurper.parse*(..) 方法之一。

关于groovy - 是否可以使用 Groovy XMLSlurper 解析子树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4104264/

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