标记必须格式良好

时间:2010-03-23 11:20:00

标签: java xml sax well-formed

首先,请允许我说我是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

3 个答案:

答案 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文件进行一些预处理。