XML文件比较

时间:2011-11-11 13:07:07

标签: android xml comparison

我已将sqlite数据库转换为XML文件。我正在处理数据库更新,所以当我从服务器获取一些XML文件时,我需要找到两个XML文件之间的差异,然后在我的手机数据库上应用更新。问题是如何成功比较两个xml文件?你看到了什么方法吗?

由于

2 个答案:

答案 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文件的大小,上述内容可能还需要一段时间才能运行。