我想确保2个XML文件是相同的,我看到的2个选项是。 1.获取XML以及时间的最后修改日期,并检查是否相同。问题是有人可能忘记改变它然后它是无用的。 2.创建xml文件/结构的哈希码。
我在java中使用了库中的构建,但是哈希实现可以在运行之间更改,这是没有用的
File model = new File(fileLocation);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(model);
doc.getHash();
有一种简单的方法可以做到这一点,并希望不导入另一个库。
答案 0 :(得分:2)
答案 1 :(得分:1)
正如Martin Thurau所指出的,这取决于您是要检查文件是否相同,或者XML内容是否相同。这个答案仅适用于第一种情况,当你想知道两个文件是否相同时,我认为这是你的问题,因为你提出了一个哈希值。
在这种情况下,构建哈希不是一个好的选择,你可以更容易地解决它:
那为什么不计算哈希值呢?无论如何你必须读取整个文件来计算哈希值,所以当你比较流时你可以放弃计算,你可以停止第一个差异。将文件解析为DOM模型也具有相同的缺点。