快速验证XML /确定破碎点的方法

Dom*_*ger 22 xml

我有一个来自Excel的大型(90MB)XML文件,以XML Spreadsheet 2003格式保存.它包含各种无效数据,因此Firefox会发出如下消息:

Line Number 790402, Column 65:
<Cell ss:StyleID="s18"><Data ss:Type="String">Here's some data I&#5;?Bnternational</Data></Cell>
Run Code Online (Sandbox Code Playgroud)

是否有一种工具可以解析我的XML并以类似于Firefox的方式告诉我它有什么问题?Firefox解析它的速度很慢(可能是因为它将所有内容保存在内存中,准备好渲染成一个漂亮的可导航树).我并不打算对XSD进行验证,只是想知道XML是否格式正确.

ska*_*man 42

有一个名为xmllint的linux命令对此有好处.它非常快,可以在没有barfing的情况下处理好文件,并提供有用的验证错误消息.

  • `xmllint - valid filename.xml`用于验证文档以及std格式良好的检查`xmllint --schema name.xsd filename.xml`以验证模式文件 (4认同)
  • 安装:`sudo apt install libxml2-utils` (4认同)
  • 我发现,如果没有 --noout 开关,如果您希望 xmllint 向您显示失败的位置,它也会转储 xml;xmllint --valid --noout 文件名.xml (3认同)
  • 酷的东西.甚至支持验证......如果没有它,我怎么能活下去?+1 (2认同)

Gri*_*ave 12

另一个答案简化:

python -c "import sys, xml.dom.minidom as d; d.parse(sys.argv[1])" FILE
Run Code Online (Sandbox Code Playgroud)