Java 比较两个xml文件并获得差异
我试图比较两个XML文件。我的要求是比较新旧xml文件,如果有任何差异,将其合并到新的xml文件中 下面的代码片段告诉我这两个文件是否相等Java 比较两个xml文件并获得差异,java,xml,dom,Java,Xml,Dom,我试图比较两个XML文件。我的要求是比较新旧xml文件,如果有任何差异,将其合并到新的xml文件中 下面的代码片段告诉我这两个文件是否相等 public static void compare() throws SAXException, IOException, ParserConfigurationException{ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNames
public static void compare() throws SAXException, IOException, ParserConfigurationException{
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("old.xml"));
doc1.normalizeDocument();
Document doc2 = db.parse(new File("new.xml"));
doc2.normalizeDocument();
System.out.println (doc1.isEqualNode(doc2));
}
但我也想要区别。请告诉我如何才能得到差异
我已经尝试过了,但我不想使用它。您可以使用jaxb解析xml,使用unmarshall方法构造java对象,并比较生成的对象 请看这里: 您还可以使用google diff match patch api将两个xml作为字符串进行比较,并使用补丁创建新的xml 差异演示: 补丁演示:
github上提供了源代码:您可以使用jaxb解析xml,使用unmarshall方法构造java对象,并比较生成的对象 请看这里: 您还可以使用google diff match patch api将两个xml作为字符串进行比较,并使用补丁创建新的xml 差异演示: 补丁演示:
源代码可在github上获得:在我的例子中,xml的格式不同:,我有多个这样的标签,java本身有没有办法做到这一点。我不想使用第三方api。我们不能利用DocumentBuilderFactory吗?不要重新发明轮子,区分两个文件并不容易。我认为使用经过测试的好api是最好的选择。在我的例子中,xml的格式不同:,我有多个这样的标签,java本身有没有办法做到这一点。我不想使用第三方api。我们不能利用DocumentBuilderFactory吗?不要重新发明轮子,区分两个文件并不容易。我认为使用经过测试且良好的api是您的最佳选择。