我正在尝试使用XSLT找到一致的解决方案来转换大量的XML文件(大约5 GB)
Hier是我迄今为止所尝试过的:
> msxsl.exe myfile.xml mysheet.xslt -o output.xml
内存不足(代码:0x8007000e),文件大于800MB。
<?xml version ='1.0'coding ='UTF-8'?>
<?xml-stylesheet href =“mysheet.xslt”type =“text / xsl”?>
<根> ...
浏览器在几分钟后崩溃。
< PHP
ini_set('max_execution_time',0);
ini_set('memory_limit',' - 1');
$ xml = simplexml_load_file('myfile.xml');
foreach($ xml-> xpath('/ root / node / atribute [@ id =“value”]')as $ result){
...
......
}
... ......
Apache服务器崩溃。
请告诉您在这方面的经历......用Java编写课程怎么样?
P.S。我不想使用像XmlSplit这样的软件!
答案 0 :(得分:4)
对于5Gb源文档,您需要一个流处理器,这意味着XSLT 3.0,目前有两个实现,Saxon-EE和Exselt。当然,并非所有的转换都是可流式的(例如,排序很棘手),但是如果你描述了你想要执行的转换,或者给它一个非流式版本,那么我相信我们可以帮助你变成在流媒体下工作的东西。