gpt4 book ai didi

java - 比较两个 xml 文件并获取差异

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:25 24 4
gpt4 key购买 nike

我正在尝试比较两个 XML 文件。我的要求是比较新旧 xml 文件,如果有任何差异,请将其合并到新 xml 文件中。

下面的代码片段告诉我两个文件是否相等。

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

但我也想要差异。请告诉我如何获得差异。

我已经尝试过XMLUnit ,但我不想使用它。

最佳答案

您可以使用 jaxb 解析 xml 并使用 unmarshall 方法构造 java 对象,并比较生成的对象。

在这里查看:How to compare jaxb, object, string to find differences

您还可以使用 google diff-match-patch api 将两个 xml 作为字符串进行比较,并修补以创建新的。

https://code.google.com/archive/p/google-diff-match-patch/

差异演示:https://neil.fraser.name/software/diff_match_patch/svn/trunk/demos/demo_diff.html补丁演示:https://neil.fraser.name/software/diff_match_patch/svn/trunk/demos/demo_patch.html

来源可在 github 上找到:https://github.com/GerHobbelt/google-diff-match-patch

关于java - 比较两个 xml 文件并获取差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46603509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com