1

我有一个要求,我需要比较两个包含复杂对象的 xml,我需要比较提交前后 xml 是否有任何变化

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

 <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>

试过这个
DOMParser parser = new DOMParser();

    parser.parse(new StringReader(cd));
    XMLDocument xmlDocument1 = parser.getDocument();
    parser.parse(new StringReader(fromDb));
    XMLDocument xmlDocument2 = parser.getDocument();
    //XMLCompare xmlDiff=new XMLCompare();
    XMLDiff xmlDiff = new XMLDiff();
    xmlDiff.setDocuments(xmlDocument1, xmlDocument2);
    xmlDiff.diff() //always returns true eventhough if we dont have any differences.

我将无法使用 xmlUnit api,请帮我解决这个问题

<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>
4

0 回答 0