SAXパーサーを介してxmlドキュメントからツリーを構築するプログラムを作成しようとしています。しかし、結果のタグの名前は成功しましたが、属性には最後のタグの属性しか表示されません。
コードの何が問題になっていますか? ツリーへの出力は tag.toString() にあります
SAXパーサーを介してxmlドキュメントからツリーを構築するプログラムを作成しようとしています。しかし、結果のタグの名前は成功しましたが、属性には最後のタグの属性しか表示されません。
コードの何が問題になっていますか? ツリーへの出力は tag.toString() にあります
48 行目を次のように変更してみてください。
Tag t = new Tag(eName, new org.xml.sax.helpers.AttributesImpl(attrs));
Attributes
問題は、それぞれのインスタンスを保存していることTag
と、Attributes
呼び出しの呼び出しごとにインスタンスが再利用されていることだとstartElement()
思います。したがって、すべてTag
のインスタンスには、パーサーによって作成された最後のインスタンスと同じコンテンツを持つ同じ属性インスタンスが表示されます。各タグの実際の属性のコピー(またはマップなど)を作成する必要があります。