Могу ли я сравнить два XML файла с немного другой структурой, используя XMLUnit? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть XML файл со следующей структурой:

<?xml version="1.0" encoding="UTF-8"?>
 <report>
  <data>
   <table>
    <row>
     <cell name="grouping_type">-1</cell>
     <cell name="book_name">Citygroup</cell>
     <cell name="account"/>
     <cell name="owner_name"/>
    </row>
    <row>
     <cell name="grouping_type">1</cell>
     <cell name="book_name">Citygroup</cell>
     <cell name="account">10933tros_3</cell>
     <cell name="owner_name">10933os</cell>
    </row>
  </table>
 </data>
</report>

И еще один:

<?xml version="1.0" encoding="UTF-8"?>
     <report>
      <data>
       <table>
        <row>
         <cell name="grouping_type">-1</cell>
         <cell name="book_name">Citygroup</cell>
         <cell name="account"/>
         <cell name="ïd"/>
         <cell name="owner_name"/>
        </row>
        <row>
         <cell name="grouping_type">1</cell>
         <cell name="book_name">Citygroup</cell>
         <cell name="account">10933tros_3</cell>
         <cell name="ïd">12</cell>
         <cell name="owner_name">10933os</cell>
        </row>
      </table>
     </data>
    </report>

Единственное отличие - это дополнительный элемент "ячейка" с атрибутом name = " Я бы". Могу ли я сравнить эти два XML файла, используя XMLunit, чтобы единственным отличием был дополнительный элемент «ячейка».

Мой код:

 DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();

        Document doc1 = docBuilder.parse(downloadedFile);
        Document doc2 = docBuilder.parse(etalonFile);

        org.custommonkey.xmlunit.Diff myDiff = new Diff(doc1, doc2);

        DetailedDiff detailedDiff = new DetailedDiff(myDiff);
        Iterator<org.custommonkey.xmlunit.Difference> iter = detailedDiff.getAllDifferences().iterator();
        org.custommonkey.xmlunit.Difference diff;
        NodeDetail controlNodeDetail;
        NodeDetail testNodeDetail;
        while (iter.hasNext()) {
            diff = iter.next();
            controlNodeDetail = diff.getControlNodeDetail();
            System.out.println(diff);
        }

XMLUnit сравнивает ячейку "id" первой XML с ячейкой "owner_name" второй. Можно ли решить мою проблему с помощью XMLUnit?

...