我有两个几乎相同的XML文件,分别为abc.xml和123.xml,但后者123.xml比前者abc.xml多了一些内容。我想使用Java读取这两个文件,并比较abc.xml中每个标签中的内容是否与123.xml中的内容相同,类似于对象比较。请建议如何使用Java读取XML文件并开始进行比较。
谢谢。
谢谢。
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
dbf.setCoalescing(true);
dbf.setIgnoringElementContentWhitespace(true);
dbf.setIgnoringComments(true);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc1 = db.parse(new File("file1.xml"));
doc1.normalizeDocument();
Document doc2 = db.parse(new File("file2.xml"));
doc2.normalizeDocument();
Assert.assertTrue(doc1.isEqualNode(doc2));
如果你只是想比较和显示,那么你可以使用Guiffy。
这是一个很好的工具。如果你想在后端进行处理,那么你必须使用DOM解析器将两个文件加载到2个DOM对象中,并逐个比较属性。
这有点过头了,但如果你的XML有架构,你可以将其转换为EMF元模型,然后使用EMF Compare进行比较。