如何验证非常大的XML文件?

时间:2011-09-23 11:26:21

标签: xml

如何验证大型XML文件(> 100mb)?我尝试用IE,FX& amp; GC和它崩溃或什么都不做。

12 个答案:

答案 0 :(得分:8)

您可以尝试使用命令行验证程序,例如xmlstarlet

$ xmlstarlet validate bigfile.xml

答案 1 :(得分:6)

<强> xmllint --stream

使用内存限制为500Mb的1.2Gb文件:

ulimit -Sv 500000
xmllint --stream a.xml

如果没有--stream,则Linux会终止此过程,并且在没有ulimit的情况下,我的计算机会卡住。

在使用--xpath时,我无法从--stream获得输出:How to do command line XPath queries in huge XML files?

在Ubuntu 14.04,xmllint版本20901中测试。

答案 2 :(得分:5)

我所知道的唯一一个将大文件查看器和XML验证器组合在一起的工具是XML ValidatorBuddy。文件查看器不会立即加载整个文件,但可以滚动并应用XML语法着色。验证使用来自Xerces的SAX解析器,而带有&gt; 100mb的文档应该不是问题。

答案 3 :(得分:3)

Oxygen XML有一个巨大的文件支持,可以进行验证

http://www.oxygenxml.com/#14.1Huge_XML_Files_Support

答案 4 :(得分:1)

以下命令对我有用 xmllint --huge

答案 5 :(得分:0)

在Java中,我确信在其他语言中,有一些解决方案可以读取整个XML文件并将其作为完整的DOM进行处理,以及以事件驱动的方式将XML作为流处理的解决方案。您可能需要第二种解决方案,它永远不会将整个文件加载到内存中。有关该问题的Java解决方案,请参阅SAX

答案 6 :(得分:0)

您可以尝试使用EditiX XML编辑器。

如果您将文档加载到EditiX中并且XML存在问题,例如。打开和关闭标签不匹配,编辑器仍会加载文件,在屏幕的右下角,您会看到一个以红色显示的数字,例如。红色&#34; 5&#34;表示文档中有五个错误。

我没有尝试过100mb的文件,但我已经完成了超过15mb的文件,看起来很开心。

这是一个免费版本。

答案 7 :(得分:0)

除了dj_segfault对phihag答案的评论之外,xmlstarlet幸运地没有死。 他们只是released Version 1.3

如果你想要一个可以操作xml的合适的命令行工具,xmlstarlet是完美的(并且非常快)。

答案 8 :(得分:0)

Windows Starlet的XML Starlet:

> xml val <xmlfile.xml>

答案 9 :(得分:0)

你也可以在Nodepad ++中使用 XML工具插件,它有一个功能&#34;现在检查XML语法&#34;。下载很简单,如果你还没有使用Notepad ++,那么这是一个很好的理由!

答案 10 :(得分:0)

Liquid Studio Community Edition包含一个Large File Editor,它也可用于验证XML文件。它的文件大小并没有上限,你可以在低规格机器上立即打开Terra-byte文件,而且它是免费的。

Liquid Studio Large File Editor

答案 11 :(得分:-1)

在Windows上,您可以编写基于.net平台的简单应用程序。 System.Xml.XmlReader类能够验证大文件。这个答案就是一个例子:Validating an XML against referenced XSD in C#