0

我的 XML 文件采用以下格式:

<top>
  <name></name>
  <title></title>
  <time></time>
</top>
<top>
  ...
</top>
<top>
  ...
</top>

我编写以下代码来读取 xml 文件:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(new File(QUERY_FILE));  //LINE (*)
doc.getDocumentElement().normalize();

NodeList nList = doc.getElementsByTagName("top");

但问题是我在 (*) 行遇到错误:

文档中根元素之后的标记必须格式正确。

似乎该错误是因为我在 xml 文件中有多个根元素。一种解决方案可能是我<doc></doc>在所有<top>元素之外添加。但是有没有其他方法可以直接在 XML 文件中读取元素数组?

4

2 回答 2

2

您可以尝试隔离每个<top>元素并尝试分别解析它们,但这比仅仅包裹<doc></doc>xml 内容更麻烦。

我过去做过的一件事是,我没有将根标签放在文件本身中,而是将文本读入字符串,然后<doc></doc>在加载 XML 之前将标签包裹在字符串周围。

于 2013-03-12T20:34:07.157 回答
0

您要为格式正确添加此行:

<?xml version="1.0" encoding="UTF-8"?> <!-- this line-->
<top>
  <name></name>
  <title></title>
  <time></time>
</top>

使用此页面查看您的文档是否正确,因为它是为这种元语言设定标准的那个。 http://validator.w3.org/#validate_by_input

验证 xml dtd 等..

万维网联盟 (W3C) 是万维网(简称 WWW 或 W3)的主要国际标准组织。字体维基百科

于 2014-12-16T23:46:46.337 回答