我想合并a,b两个XML文件,属性都一样,只是重复的删除不重复的加入,输出一个新的合并文件。
例:
a文件如下:
<query id="EL14_ENG_0000">
<docid>1</docid>
<beg>101</beg>
<end>108</end>
</query>
<query id="EL14_ENG_0001">
<docid>2</docid>
<beg>133</beg>
<end>139</end>
</query>
b文件如下:
<query id="EL14_ENG_0000">
<docid>1</docid>
<beg>101</beg>
<end>108</end>
</query>
<query id="EL14_ENG_0001">
<docid>4</docid>
<beg>127</beg>
<end>166</end>
</query>
如上,a,b文件第一个query节点相同,第二个不同,合并出来C文件希望是:
<query id="EL14_ENG_0000">
<docid>1</docid>
<beg>101</beg>
<end>108</end>
</query>
<query id="EL14_ENG_0001">
<docid>4</docid>
<beg>127</beg>
<end>166</end>
</query>
<query id="EL14_ENG_0001">
<docid>2</docid>
<beg>133</beg>
<end>139</end>
</query>
这样子,重复的加进去只加一次,不重复的全部加入。
我已经做得工作:把两个文件的docid跟beg跟end读成了数组形式,本来想用二维数组,然后判断contain呢,但是发现没有contain这个方法。
特来求救。
------解决方案--------------------
1、二维数组也可以(自己写个方法判断下(这三个节点的值)就行了)
2、也可以把这个三个(docid、beg、end)属性封装到一个map或者一个对象里
然后组装成List<Map>或者List<你封装的对象>,最后用list的contain方法判断存不存在