java中两种复杂XML的比较

java中两种复杂XML的比较,java,xml,compare,using,xmldiff,Java,Xml,Compare,Using,Xmldiff,我需要比较两个包含复杂对象的xml,我需要比较提交前后xml中是否有任何更改 比较什么是最好和最有效的方法,我将无法使用XMLUnitAPI <mf> <df dimId="7" memberOnly="true"> <ml> <m> <value>2458989</value> <hid>

我需要比较两个包含复杂对象的xml,我需要比较提交前后xml中是否有任何更改

比较什么是最好和最有效的方法,我将无法使用XMLUnitAPI

 <mf>
     <df dimId="7" memberOnly="true">
         <ml>
            <m>
                  <value>2458989</value>
                  <hid>10005</hierarchyId>
                  <lid>51</levelId>
                  <display>5/19/20</displayValue>
             </m>
         </ml>
      </df>
   </mf>
我将无法使用XMLUnitAPI,请帮助我修复此问题

<memberFilters>
      <dimensionFilter dimId="7" memberOnly="true">
         <memberList>
            <member>
               <value>2458989</value>
               <hierarchyId>10005</hierarchyId>
               <levelId>51</levelId>
               <displayValue>5/19/20</displayValue>
            </member>
         </memberList>
         <criteria>
            <preSelectedMemberList>
               <member>
                  <value>2458989</value>
                  <hierarchyId>10005</hierarchyId>
                  <levelId>51</levelId>
                  <displayValue>5/19/20</displayValue>
               </member>
            </preSelectedMemberList>
            <Criterion>
               <selection>Replace</selection>
               <criterionByLevel>
                  <hierarchyId>10005</hierarchyId>
                  <levelId>10009</levelId>
                  <levelName>Period</levelName>
               </criterionByLevel>
            </Criterion>
            <Criterion>
               <selection>Replace</selection>
               <criterionByMeasure>
                  <hierarchyId>10005</hierarchyId>
                  <levelId>51</levelId>
                  <levelName>Day</levelName>
                  <condition byValue="true" usePercent="false"> 
                     <conditionOp>AND</conditionOp>
                     <measureId>1522</measureId>
                     <measureName>value</measureName>
                     <compareOp>EQ</compareOp>
                     <value>0</value>
                     <roundDecimalDigits>0</roundDecimalDigits>
                  </condition>
               </criterionByMeasure>
            </Criterion>
         </criteria>
      </dimensionFilter>
   </memberFilters>

2458989
10005
51
5/19/20
2458989
10005
51
5/19/20
代替
10005
10009
时期
代替
10005
51
白天
及
1522
价值
情商
0
0

您是否检查了最佳方式?将它们转换回object并进行比较。嗨,Sam也尝试了object比较,我们有复杂的XML每个标记都是一个具有嵌套属性的bean。对每个值进行深度匹配会导致性能问题如果这是对象的性能问题,那么在比较xml时将是最糟糕的。你需要一个更好的硬件来处理它。你检查过最好的方法吗?将它们转换回object并进行比较。嗨,Sam也尝试了object比较,我们有复杂的XML每个标记都是一个具有嵌套属性的bean。对每个值进行深度匹配会导致性能问题如果这是对象的性能问题,那么在比较xml时将是最糟糕的。你需要一个更好的硬件来处理它。
<memberFilters>
      <dimensionFilter dimId="7" memberOnly="true">
         <memberList>
            <member>
               <value>2458989</value>
               <hierarchyId>10005</hierarchyId>
               <levelId>51</levelId>
               <displayValue>5/19/20</displayValue>
            </member>
         </memberList>
         <criteria>
            <preSelectedMemberList>
               <member>
                  <value>2458989</value>
                  <hierarchyId>10005</hierarchyId>
                  <levelId>51</levelId>
                  <displayValue>5/19/20</displayValue>
               </member>
            </preSelectedMemberList>
            <Criterion>
               <selection>Replace</selection>
               <criterionByLevel>
                  <hierarchyId>10005</hierarchyId>
                  <levelId>10009</levelId>
                  <levelName>Period</levelName>
               </criterionByLevel>
            </Criterion>
            <Criterion>
               <selection>Replace</selection>
               <criterionByMeasure>
                  <hierarchyId>10005</hierarchyId>
                  <levelId>51</levelId>
                  <levelName>Day</levelName>
                  <condition byValue="true" usePercent="false"> 
                     <conditionOp>AND</conditionOp>
                     <measureId>1522</measureId>
                     <measureName>value</measureName>
                     <compareOp>EQ</compareOp>
                     <value>0</value>
                     <roundDecimalDigits>0</roundDecimalDigits>
                  </condition>
               </criterionByMeasure>
            </Criterion>
         </criteria>
      </dimensionFilter>
   </memberFilters>