2012-07-14 56 views
1

我试图制作一个程序,它将通过SAX解析器从xml文档构建一棵树。 但在结果标签名称建立sucsessful,但在属性我只看到最后一个标签的属性。Java萨克斯树(重复属性)

code有什么不对? 打印到树是tag.toString()

回答

1

尝试改变线48成:

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

我想这个问题是你存储Attributes实例每个Tag,那Attributes实例重新用于在每个调用到startElement() invokation。因此,每个Tag将会看到具有相同内容的相同属性实例,即分析器构建的最后一个属性实例。您将不得不为每个标签创建实际属性的副本(或Map或其他)。