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>

ここでは、ルート要素に「wrapper」という名前を勝手に選んでいます。それはあなたが好きなものにすることができます。

于 2010-03-23T11:22:59.707 に答える
1

ヒント: sax または stax を使用すると、最初の「 wellformed -ness」エラーが発生するまで、整形式でない xml ドキュメントを正常に解析できます。

(これがあまり役に立たないことはわかっています...)

于 2010-03-23T11:39:28.467 に答える
0

DOM は xml ファイルをスキャンしてからツリーを構築するため、ツリーのルート ノードは as 1 Answer のようになります。ただし、パーサーが または さえ見つからない場合は、ツリーを構築することさえできます。そのため、DOM または Sax でパーサーを実行する前に、xml ファイルを前処理する方がよいでしょう。

于 2010-03-23T11:41:16.567 に答える