我已将sqlite数据库转换为XML文件。我正在处理数据库更新,所以当我从服务器获取一些XML文件时,我需要找到两个XML文件之间的差异,然后在我的手机数据库上应用更新。问题是如何成功比较两个xml文件?你看到了什么方法吗?
由于
答案 0 :(得分:0)
难道你不能假设所有数据都是新的,只需要获取最新的xml文件并将所有更新应用到相关记录中吗?我知道这不是优雅,但根据你的情况,可能是一个不错的选择。
答案 1 :(得分:0)
如果(且仅当)两个XML文件中的元素数量相同(您不添加/删除行,只更新值),您可以执行以下操作:
使用XML解析器(我使用JDOM)来运行两个文件的所有元素,将一个值与另一个值进行比较。
private void compareElements( Element one, Element two ) {
//Check if the elements have children
if( one has children AND two has children ) {
//Recursive call this method for each child
List oneChildren = get list of ones children
List twoChildren = get list of twos children
for( Element childOne in oneChildren AND Element childTwo in twoChildren )
compareElements( childOne, childTwo ) )
}
else {
//One and two have no children and we need to compare their values
if( one.Value != two.Value )
//Update the value in the database
}
}
注意:上面是用伪代码编写的,所以你必须自己编写实际的代码 - 但我希望它能给出一个大致的想法。
此外,根据XML文件的大小,上述内容可能还需要一段时间才能运行。