如何使用java api逻辑比较两个XML文件?

时间:2013-12-09 10:09:27

标签: java xml xml-parsing

我想比较两个XML文件。我尝试过使用XMLUnit api。但它并不适合我,因为我想要。 我希望以下比较结果为真,即它们是相似的。

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>

我希望这个比较等于= true。

我的功能:

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();
        }
    }

1 个答案:

答案 0 :(得分:0)

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