8

首先,让我说我是 SAX 和 Java 的新手。

我正在尝试从格式不正确的 XML 文件中读取信息。

当我尝试使用 SAX 或 DOM 解析器时,我收到以下错误响应:

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?

感谢您的帮助。非常感激。海瑟姆

4

3 回答 3

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>

在那里,我为根元素任意选择了名称“包装器”;它可以是你喜欢的任何东西。

于 2010-03-23T11:22:59.707 回答
1

提示:使用 sax 或 stax 可以成功解析格式不正确的 xml 文档,直到遇到第一个“格式正确”错误。

(我知道这并没有太大的帮助......)

于 2010-03-23T11:39:28.467 回答
0

由于 DOM 将扫描您的 xml 文件然后构建一棵树,树的根节点就像 1 答案一样。但是,如果 Parser 找不到 or even ,它甚至可以构建树。因此,最好在 DOM 或 Sax 解析之前对 xml 文件进行一些预处理。

于 2010-03-23T11:41:16.567 回答