Java Sax树(重复属性)

Java Sax树(重复属性),java,xml,duplicates,sax,Java,Xml,Duplicates,Sax,我正在尝试制作一个程序,该程序将通过SAX解析器从xml文档构建一棵树。 但在结果中,标记名构建成功,但在属性中,我只看到最后一个标记的属性 你怎么了? 打印到树位于tag.toString()我想问题在于,您正在为每个标记存储属性实例,并且属性实例在每次调用startElement()调用时都会重复使用。因此,每个标记将看到具有相同内容的相同属性实例,即解析器构造的最后一个实例的属性实例。您必须为每个标记创建实际属性的副本(或映射或其他内容)。我想问题在于您正在为每个标记存储属性实例,并且属性

我正在尝试制作一个程序,该程序将通过SAX解析器从xml文档构建一棵树。 但在结果中,标记名构建成功,但在属性中,我只看到最后一个标记的属性

你怎么了?
打印到树位于tag.toString()

我想问题在于,您正在为每个
标记存储
属性
实例,并且
属性
实例在每次调用
startElement()
调用时都会重复使用。因此,每个
标记
将看到具有相同内容的相同属性实例,即解析器构造的最后一个实例的属性实例。您必须为每个标记创建实际属性的副本(或映射或其他内容)。

我想问题在于您正在为每个
标记存储
属性
实例,并且
属性
实例在每次调用
startElement()
调用时都会被重用。因此,每个
标记
将看到具有相同内容的相同属性实例,即解析器构造的最后一个实例的属性实例。您必须为每个标记创建实际属性的副本(或地图或其他内容)。

尝试将第48行更改为:


尝试将第48行更改为:

Tag t = new Tag(eName, new org.xml.sax.helpers.AttributesImpl(attrs));