我有一个将工业系统导出文件解析为xml的模板。对于新工作,我想重复使用它,但文件太大(4G,而且每天都在增长)
最初的模板使用了未解析的文本、分析字符串...问题只与未解析的文本有关,也可能与计算机可用内存有关。我找到的唯一解决方案是在xsl处理之前拆分文件,但效率不是很高,因为它花费了太多时间。
在xsl模板中可以只加载文件的一部分吗?
发布于 2019-07-19 19:27:23
看看https://dev.saxonica.com/repos/archive/opensource/latest9.9/hej/net/sf/saxon/functions/UnparsedTextLines.java,似乎如果你使用Saxon9.9中的函数unparsed-text-lines (甚至HE),它避免了将整个文件拖入内存,而是构建了一个基于行的迭代器,所以我认为如果你使用xsl:iterate select="unparsed-text-lines('foo.txt')",然后只处理/存储/累加你需要的行,当处理完相关的行时,可能最终与xsl:break中断,你可以减少内存占用。
https://stackoverflow.com/questions/57110231
复制相似问题