XSL:如何解析巨大的文本文件(几个GB)

时间:2019-07-19 10:13:18

标签: xslt xslt-2.0 xslt-3.0

我有一个模板,可将工业系统导出文件解析为xml。 对于新工作,我想重用它,但是文件太大(每天4 Gig,并且每天都在增长)

原始模板使用了未分析的文本,analysis-string,... 问题仅在于未解析的文本,可能还有计算机的可用内存。 我发现的唯一解决方案是在xsl处理之前分割文件,但效率不高,因为它花费了太多时间。

是否可以在xsl模板中仅加载文件的一部分?

1 个答案:

答案 0 :(得分:0)

https://dev.saxonica.com/repos/archive/opensource/latest9.9/hej/net/sf/saxon/functions/UnparsedTextLines.java,看来如果您在Saxon 9.9(甚至HE)中使用函数unparsed-text-lines,它可以避免将整个文件拉入内存,而是构建基于行的迭代器,所以我想如果您使用xsl:iterate select="unparsed-text-lines('foo.txt')",然后仅处理/存储/累积所需的行,并在完成相关行后最终中断xsl:break,可以减少内存占用。