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

在尝试使用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); 
 类似资料:
  • 我有h2数据库的工作应用程序。db没有连接问题,因为我可以从那里获得一些值,但是当我尝试创建EntityManagerFactory时:然后我在日志中看到: 只有在尝试创建上面提到的时才会出现问题。当我不尝试它时,我可以去h2 web控制台,看到flyway正确地创建了db,进行了插入,并且我可以进行选择/插入等等。 @编辑添加pom.xml

  • 我正在尝试制作一个cordova插件。我的所作所为 另外,我已经安装了AndroidStudio4.1

  • 我试图比较两个xml文件并显示差异,如果找到的话。 目前,我正在使用XML Diff来查找差异。 也查看了xnode.deepeQuals,但它也返回是否有任何区别。但不是什么区别。 任何帮助都很感激

  • 我试图比较两个XML文件。我的要求是比较新旧xml文件,如果有任何差异,将其合并到新的xml文件中。 但我也想要差异。请告诉我怎样才能得到不同之处。 我已经尝试过XMLUnit,但我不想使用它。

  • 我是一个初学者,在尝试使用JPG制作标签时遇到了一些问题。 并且显示线程“main”java.lang.NullPointerException中的 异常 在Pane.MyImageIcon。(MyImageIcon.java:11) 在Pane.MyImageIcon.Main中(MyImageIcon.java:21)

  • 问题内容: 假设我有两个xml字符串 如何编写一个比较这两个字符串并忽略元素顺序的测试? 我希望测试尽可能短,没有10行XML解析等的位置。我正在寻找一个简单的断言或类似内容。 我有这个(不起作用) 问题答案: 我原来的答案已经过时了。如果必须再次构建它,我将使用xmlunit 2和xmlunit- matchers。请注意,对于xml单元,不同的顺序始终是“相似”而不是相等。 如果有人仍然不想使