当前位置: 首页 > 知识库问答 >
问题:

在尝试使用XML单元比较两个XML时,线程“main”出现异常

狄楷
2023-03-14
 package util;
 import java.io.BufferedReader;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException; 
 import java.io.IOException; 
 import java.io.InputStreamReader; 
 import java.io.Reader;
 import java.util.ArrayList;
 import java.util.List;

 import org.custommonkey.xmlunit.DetailedDiff;
 import org.custommonkey.xmlunit.Diff;
 import org.custommonkey.xmlunit.Difference;
 import org.custommonkey.xmlunit.XMLUnit;
 import org.xml.sax.SAXException;

 /** * * Java program to compare two XML files using XMLUnit example * @author Javin Paul */ 
 public class XMLComparator { public static void main(String args[]) throws 
   FileNotFoundException, SAXException, IOException
 { // reading two xml file to compare in Java program 
  FileInputStream fis1 = new 
  FileInputStream("C:\\Users\\akshay_gawand\\Desktop\\8.3\\Transfer\\testcasemcs6.0");
    FileInputStream fis2 = new 
   FileInputStream("C:\\Users\\akshay_gawand\\Desktop\\8.3\\Transfer\\testcasemcs7.0"); 
         
  BufferedReader source = new BufferedReader(new InputStreamReader(fis1));
    BufferedReader target = new BufferedReader(new InputStreamReader(fis2)); //configuring 
     XMLUnit to ignore white spaces 
    XMLUnit.setIgnoreWhitespace(true); //comparing two XML using XMLUnit in Java
     List differences = compareXML(source, target); //showing differences found in two xml 
      files 
     printDifferences((List) differences); 
      } 
     public static List compareXML(Reader source, Reader target) throws SAXException, 
      IOException
      { //creating Diff instance to compare two XML files
        Diff xmlDiff = new Diff(source, target); //for getting detailed differences between 
      two xml files 
     DetailedDiff detailXmlDiff = new DetailedDiff(xmlDiff); 
          return detailXmlDiff.getAllDifferences(); 
            } 
       public static void printDifferences(List<String> differences)
       { 
           int totalDifferences = differences.size();
         System.out.println("===============================");
        System.out.println("Total differences : " + totalDifferences); 
         System.out.println("================================");
 
        for(String difference : differences)
       {
         System.out.println(difference ); 
          } 
         } 
         }

共有1个答案

步衡
2023-03-14

在尝试使用XML单元比较两个XML时,线程“main”出现异常

错误发生在这一行。

printDifferences((List) differences); 

什么对象位于称为差异的对象中?这是一些XML Unit类。它可能看起来像list ,该方法期望什么作为输入?字符串列表!

 List differences = compareXML(source, target); //showing differences found in two xml 
      files 
 List<String> diffStrings = new ArrayList<String>()
  for(var diff: differences) { 
       diffStrings.add(diff.toString())
  }   
     printDifferences((List) diffStrings); 
 类似资料: