我正在尝试使用SAX解析器解析包含35000多个项目的XML:
每个项目都有
<ValueGroup AttributeID="AAA">
<Value QualifierID="Q1">2016-21-7 05:08:09</Value>
<Value QualifierID="Q2">2016-21-6 23:31:52</Value>
</ValueGroup>
我必须根据限定符ID创建单独的Excel。
同时,两个excel都有共同的属性。
<Value AttributeID="BBB">Trade articles</Value>
我可以有多个这样的限定符,每个项目有300个属性 我打算使用Apache POI来创建excel。
我想到的可能选择是:
为每个限定符分别设置对象列表。创建一个包含所有属性的POJO,并在解析XML时设置值。
- 醇>
为每个限定符提供单独的哈希映射列表。在hashmap中将属性添加为键值对。这样我就会有一个 每个项目的hashmap。
这两种方法的问题在于我基本上也复制了常用值。此外,如果物品数量变大,我可能会耗费大量内存。
我想到的另一个选项是将属性和值存储在JSON表示法中并将其存储在一个文件中,从而不必将所有数据保存在内存中
- 醇>
选项的变体1.创建具有所有属性的POJO列表,但区别在于具有多个限定符的属性将是具有键作为限定符的散列映射,并且值是来自XML的对应值。这样我就不会复制多个列表中的信息了
有没有更好的方法(应该有)或改善这个? 我正在考虑使用选项3。
编辑:将选项1a改进为选项4,并增加了清晰度