如何使用xml扫描转储xml数据,即使语法错误

时间:2013-10-06 19:54:24

标签: xml erlang

当使用带有xmerl_scan:file的语法错误的xml文件时,输出将行号和列号指示为:

1> xmerl_scan:file('failed.xml').
2542- fatal: {endtag_does_not_match,{was,request,should_have_been,http}}
** exception exit: {fatal,{{endtag_does_not_match,{was,request,
                                                   should_have_been,http}},
                           {file,'failed.xml'},
                           {line,77},
                           {col,8}}}

问题是文件failed.xml是由很多ENTITY组成的,因此原始文件不包含77行,这种情况下调试并不容易。如何转储xmerl_sacn真正分析的最终xml来调试xml?是否有任何选项传递给xmerl_scan?我阅读了文档但找不到解决方案。

1 个答案:

答案 0 :(得分:0)

解决方案是使用xmerl_sax_parser:file / 2作为Lars Thorsen在erlang-questions列表中的提议 http://erlang.org/pipermail/erlang-questions/2013-October/075682.html