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 ファイルに複数のルート要素があるため、エラーが発生したようです。1 つの解決策は、おそらくすべての要素<doc></doc>の外側に追加することです。<top>しかし、要素配列などの XML ファイルを直接読み取る方法はありますか?

4

2 に答える 2

2

各要素を分離して個別に解析しようとすることもできますが、それは単にxml コンテンツ<top>をラップするよりも面倒な解決策です..<doc></doc>

私が過去に行ったことの 1 つは、ファイル自体にルート タグを配置する代わりに、テキストを文字列に読み取り、<doc></doc>XML をロードする前に文字列をタグで囲むことです。

于 2013-03-12T20:34:07.157 に答える