Gun*_*hez 2 php java xml xslt xpath
我试图找到一个一致的解决方案,使用 XSLT 来转换巨大的 XML 文件(几乎 5 GB)
Hier是我迄今为止尝试过的:
>msxsl.exe myfile.xml mysheet.xslt -o output.xml
这会耗尽内存(代码:0x8007000e)并且文件大于 800MB。
<?xml version='1.0' encoding='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写一个类怎么样?
PS 我不想使用 XmlSplit 之类的软件!
对于 5Gb 源文档,您需要一个流处理器,这意味着 XSLT 3.0,它目前有两个实现,Saxon-EE 和 Exselt。当然,并不是所有的转换都是流式的(例如排序很棘手),但是如果你描述了你想要执行的转换,或者给出它的非流式版本,那么我相信我们可以帮助你变成在流媒体下工作的东西。