Gfy*_*Gfy 10
XmlSplit - 分割大型XML文件的命令行工具
xml_split - 将大型XML文档拆分为较小的块
通过bhayanakmaut拆分XML(没有源代码,我无法使这个工作)
一个类似的问题:如何拆分大型xml文件?
我认为除非您有兴趣以编程方式进行拆分,否则您必须手动拆分。下面是一个执行此操作的示例,但它没有提及所处理的 XML 文件的最大大小。手动执行时,出现的第一个问题是如何打开文件本身。
我会推荐一个非常简单的文本编辑器 - 比如Vim。处理如此大的文件时,关闭所有形式的语法突出显示和/或折叠总是有用的。
其他值得考虑的选择:
EditPadPro - 我从未尝试过使用这种尺寸的任何东西,但如果它与其他 JGSoft 产品类似,它应该可以轻松工作。请记住关闭语法突出显示。
VEdit - 我已经将它用于 1GB 大小的文件,工作起来就好像它什么都没有一样。
这是一个低内存占用脚本,可使用 CMarkup 文件模式在免费的firstobject XML 编辑器(foxe)中执行此操作。我不确定你所说的没有相互依赖的顶部节点或标签检查是什么意思,但假设在根元素下有数百万个顶级元素,其中包含对象属性或行,每个元素都需要作为一个单元保存在一起,并且你想说每个输出文件 100 万个,你可以这样做:
split_xml_15GB()
{
int nObjectCount = 0, nFileCount = 0;
CMarkup xml输入,xml输出;
xmlInput.Open( "15GB.xml", MDF_READFILE );
xmlInput.FindElem(); // 根
str sRootTag = xmlInput.GetTagName();
xmlInput.IntoElem();
while ( xmlInput.FindElem() )
{
if ( nObjectCount == 0 )
{
++n文件计数;
xmlOutput.Open( "piece" + nFileCount + ".xml", MDF_WRITEFILE );
xmlOutput.AddElem( sRootTag );
xmlOutput.IntoElem();
}
xmlOutput.AddSubDoc( xmlInput.GetSubDoc() );
++n对象计数;
if ( nObjectCount == 1000000 )
{
xmlOutput.Close();
n对象计数 = 0;
}
}
if ( nObjectCount )
xmlOutput.Close();
xmlInput.Close();
返回nFileCount;
}
我在这里发布了有关此内容的 YouTube 视频和文章:
http://www.firstobject.com/xml-splitter-script-video.htm
| 归档时间: |
|
| 查看次数: |
60254 次 |
| 最近记录: |