如何验证大型XML文件(> 100mb)?我尝试用IE,FX& amp; GC和它崩溃或什么都不做。
答案 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有一个巨大的文件支持,可以进行验证
答案 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文件,而且它是免费的。
答案 11 :(得分:-1)
在Windows上,您可以编写基于.net平台的简单应用程序。 System.Xml.XmlReader
类能够验证大文件。这个答案就是一个例子:Validating an XML against referenced XSD in C#