私は以下のコードに似たコードでXML文書を解析しています。コードは、Node
ツリーに解析された後、自分のプログラムの設定として処理されます。いくつかの理由で、この構成にエラーがあり、ユーザーに報告する必要があります。XML文書の場所をユーザーにどのように表現しますか?
私のプログラムは、すべてのエラーが(たとえそのノードがエラーが検出されたポイントであったとしても)単一のノードに帰属できると仮定して動作しています。
この設定を単純にフラットファイル(行単位)から読み取ると、ユーザに報告されるエラーはError at line number 42 ...
のようなものになる可能性がありますが、このエラーは抽象的なノードツリーに解析された後にのみ検出される、設定ファイル内のエラーの場所が失われています。
これらの設定ファイルがかなり大きい可能性があることに気づいたユーザに、誤ったノードの場所を表す方法を教えてください。
コードの解析
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = factory.newDocumentBuilder();
Document doc = db.parse(inputDocument);
エラーはXML構造自体にはありませんが、xmlの値はプログラムの入力として無効であることを意味しますか? –
はい。上のコードは成功したと仮定します。そうでない場合は、別の方法で処理されます。 –
XPathを間違った場所に報告しますか?行番号は適切かもしれません。これは、XML自体のフォーマットに依存します。 XMLがまったくフォーマットされていない場合はどうなりますか? – sethu