我的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文件中读取元素数组?
答案 0 :(得分:2)
您可以尝试隔离每个<top>
元素并尝试单独解析它们,但这比仅仅围绕xml内容包装<doc></doc>
更麻烦。
我过去做的一件事是将root标签放在文件本身,我只是将文本读成字符串,然后在加载XML之前将<doc></doc>
标签包裹在字符串周围。
答案 1 :(得分: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)的主要国际标准组织。字体维基百科