2013-12-09 20 views
0

我想比较两个XML文件。我尝试使用XMLUnit API。但它不适合我,因为我想。 我希望以下的比较结果是真实的,即它们是相似的。如何从逻辑上比较使用java api的两个XML文件?

FILE1:

<root> 
    <node> 
     <node1> xyz </node1> 
     <node2> abc </node2> 
    </node> 
    <node> 
     <node3>pqr</node3> 
     <node4>stu</node4> 
    </node> 
</root> 

FILE2:

<root> 
    <node> 
     <node3>pqr</node3> 
     <node4>stu</node4> 
    </node> 
    <node> 
     <node1> xyz </node1> 
     <node2> abc </node2> 
    </node> 
</root> 

我想这个比较相等=真。

我的功能:

public static void assertXMLSame(String path1,String path2){ 
     XMLUnit.setIgnoreWhitespace(true); 
     XMLUnit.setIgnoreAttributeOrder(true); 
     XMLUnit.setIgnoreComments(Boolean.TRUE); 

     FileReader fr1 = null; 
     FileReader fr2 = null; 
     try { 
      fr1 = new FileReader(path1); 
      fr2 = new FileReader(path2); 
      Diff diff = new Diff(fr1,fr2); 
      System.out.println("Similar? " + diff.similar()); 
      System.out.println("Identical? " + diff.identical()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
+2

你尝试过什么吗?请告诉我们你的代码。 – 2013-12-09 10:13:10

+0

我已经使用了org.custommonkey.xmlunit API。 – Amit

+0

你的XML有多大?可以使用DOM并将两个xml文档保存在内存中。比存在节点逐个比较。 – jboi

回答

0

如果你知道你的XML的结构,事先你可以为它做准备类模板。你的类应该实现equals()方法。然后解组源xml到java类实例,然后你可以测试它们是否相等。