1

複雑なオブジェクトを含む 2 つの 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