首先,请允许我说我是SAX和Java的新手。
我正在尝试从格式不正确的XML文件中读取信息。
当我尝试使用SAX或DOM Parser时,我收到以下错误:
The markup in the document following the root element must be well-formed.
这就是我设置XML文件的方式:
<format type="filename" t="13241">0;W650;004;AG-Erzgeb</format>
<format type="driver" t="123412">001;023</format>
...
我是否可以强制SAX或DOM解析XML文件,即使它们不是格式良好的XML?
感谢您的帮助。非常感激。 Haythem
答案 0 :(得分:20)
最好的办法是将XML格式化,可能需要对其进行预处理。在这种情况下,您可以通过在(甚至是可选的)上放置XML声明并提供根元素(不是可选的)来实现这一点,如下所示:
<?xml version="1.0"?>
<wrapper>
<format type="filename" t="13241">0;W650;004;AG-Erzgeb</format>
<format type="driver" t="123412">001;023</format>
</wrapper>
在那里,我随意选择了根元素的名称“wrapper”;它可以是你喜欢的任何东西。
答案 1 :(得分:1)
提示:使用sax或stax,您可以成功解析格式不正确的xml文档,直到遇到 FIRST “wellformed-ness”错误。
(我知道这不是太多的帮助......)
答案 2 :(得分:0)
当DOM扫描你的xml文件然后构建一棵树时,树的根节点就像是1答案。但是,如果Parser找不到甚至,它甚至可以构建树。因此,在通过DOM或Sax解析之前,最好先对xml文件进行一些预处理。