1

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

代码有什么问题?打印到树在 tag.toString()

4

2 回答 2

1

尝试将第 48 行更改为:

Tag t = new Tag(eName, new org.xml.sax.helpers.AttributesImpl(attrs));
于 2012-07-14T17:35:28.587 回答
0

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

于 2012-07-14T15:04:30.253 回答