2个大的XML文件怎么比较其中的内容
2个XML文件的内容都是描述同一模型的。
2个XML文件的文件名一样,里面的内容绝大部分一样,只是稍有不同。
文件内容如下:
<cim:SubControlArea rdf:ID="333003">
<cim:Naming.name>nm</cim:Naming.name>
<cimNARI:SubControlArea.recordApp>2031647</cimNARI:SubControlArea.recordApp>
</cim:SubControlArea>
<cim:BaseVoltage rdf:ID="23450010">
<cim:BaseVoltage.nominalVoltage>20.000000</cim:BaseVoltage.nominalVoltage>
<cimNARI:BaseVoltage.name>20</cimNARI:BaseVoltage.name>
<cimNARI:BaseVoltage.nominalI>0.000000</cimNARI:BaseVoltage.nominalI>
<cimNARI:BaseVoltage.v_exm>21.000000</cimNARI:BaseVoltage.v_exm>
<cimNARI:BaseVoltage.mva_exm>114.000000</cimNARI:BaseVoltage.mva_exm>
</cim:BaseVoltage>
<cim:Substation rdf:ID="1234">
<cim:Naming.name>name111</cim:Naming.name>
<cim:Naming.aliasName>name111</cim:Naming.aliasName>
<cimNARI:Substation.substationType rdf:resource="http://www.123.cn/CIM/ext-schema#ee.do"/>
<cimNARI:Substation.recordApp>1540111</cimNARI:Substation.recordApp>
<cimNARI:Substation.MaxBaseVoltage rdf:resource="#23450010"/>
<cim:Substation.MemberOf_SubControlArea rdf:resource="#333003"/>
</cim:Substation>
其中的ID是不会变的。即 ID 对应一个节点。
场景:
1. 第一次拿到XML文件,将其中的各个节点解析成java对象后入库;
2. 由于模型有所改变(改变很小),所以第二次拿到的XML文件内容也稍有改变;
3. 对比前后2次拿到的XML文件,找出其中不同的内容,然后更新数据库表中相应的记录。
文件比较大,有52万多行,大概30M。
请问,应该怎么比较呢?
[解决办法]
使用xmlunit,里面有个比较xml文档的类。