日期:2014-05-20  浏览次数:20841 次

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文档的类。