我试图制作一个程序,它将通过SAX解析器从xml文档构建一个树。 但是在标签的结果名称构建成功,但在属性中我只看到最后一个标签的属性。
code有什么问题? 打印到树是在tag.toString()
答案 0 :(得分:1)
尝试将第48行更改为:
Tag t = new Tag(eName, new org.xml.sax.helpers.AttributesImpl(attrs));
答案 1 :(得分:0)
我想问题是你要为每个Attributes
存储Tag
个实例,并且每次调用Attributes
调用时都会重用startElement()
个实例。因此,每个Tag
将看到具有相同内容的相同属性实例,即由解析器构造的最后一个内容。您必须为每个标记创建实际属性的副本(或Map或其他内容)。