确定界面布局兼容度的方法及装置的制造方法_2

文档序号:8430646阅读:来源:国知局
[0041]将I减去计算得到的节点属性相似度,得到第一 DOM树与第二 DOM树之间的节点属性差异度。
[0042]( 二)对于上述操作1302而言
[0043]考虑到第一集合内任意一个节点对中的节点,分别到自身所在的DOM树根节点的路径相同,在文档结构上无差异,故可仅针对第二集合中的节点,利用该节点在其所在DOM树中的结构信息,计算第一 DOM树与第二 DOM树之间在文档结构上的差异度(即结构差异度)。
[0044]当然,也可先针对第二集合中的节点,利用该节点在其所在DOM树中的结构信息,计算一个结构相似值;进而,根据上述计算得到的结构相似值,以及第一集合中的节点对的个数,得出第一 DOM树与第二 DOM树之间在文档结构上的结构相似度;最后,将I减去得出的结构相似度,得到第一 DOM树与第二 DOM树之间的结构差异度。
[0045](三)对于上述操作1303而言
[0046]在本实施例中,根据两DOM树间的节点属性差异度和结构差异度,确定第一界面布局文件与第二界面布局文件之间的兼容度,可具体是:将第一 DOM树与第二 DOM树间的节点属性差异度和结构差异度进行设定预算(例如加权运算),得到第一 DOM树与第二 DOM树间的总差异度;根据总差异度,确定第一界面布局文件与第二界面布局文件之间的兼容度。其中,总差异度越大,得到的兼容度越小。例如,设总差异度的值域为O到1,则可以将I与总差异度的差值,作为两界面布局文件的兼容度。
[0047]当然,本领域的普通技术人员应理解,还可以通过其他方式,根据分类结果来确定两界面布局文件的兼容度,例如:
[0048]利用第一集合中的节点对的属性信息,计算第一 DOM树与第二 DOM树之间的节点属性相似度;
[0049]利用第二集合中的节点的结构信息,计算第一 DOM树与第二 DOM树之间的结构相似度;
[0050]根据节点属性相似度和结构相似度,确定第一界面布局文件与第二界面布局文件之间的兼容度。
[0051]示例性的,可直接将节点属性相似度和结构相似度进行加权求和运算,得到第一界面布局文件与第二界面布局文件之间的兼容度。
[0052]本实施例提供的技术方案,在获取到待比对的两界面布局文件的文档对象模型树之后,先将两文档对象模型树中的节点,按照到根节点的路径进行分类,进而根据分类结果,来确定第一界面布局文件与第二界面布局文件之间的兼容度,这样相较于通过逐一比对两文档对象模型树中不同节点在文档结构属性和节点属性上的差异度,进而根据比对结果,来确定两界面布局文件间的差异度的方案,本实施例可以提高兼容度确定结果的准确率及其运行速度。
[0053]实施例二
[0054]本实施例在上述实施例一的基础上,对“利用第一集合中的节点对的属性信息,计算第一 DOM树与第二 DOM树之间的节点属性差异度”的操作,以及“利用第二集合中的节点的结构信息,计算第一 DOM树与第二 DOM树之间的结构差异度”的操作,作进一步优化。
[0055]参见图2A,本实施例提供的计算两DOM树间节点属性差异度的方法,具体包括如下操作:
[0056]操作210、分别针对第一集合中的各个节点对:计算节点对的属性信息的子差异度,其中子差异度为大于0,且小于或等于I的数值。
[0057]其中,属性信息可由多个属性项信息组成,例如节点索引值、节点类型、控件类型、文本属性、控件详细描述信息等。在本实施例中,可预先为预设的各个关键属性项信息分配相应的差异因子,所有的差异因子之和小于或等于I。示例性的,计算节点对的属性信息的子差异度,具体为:遍历节点对中的两个节点的各关键属性项信息,检测两个节点所具备的相同的关键属性项信息;获取节点对中属于第一 DOM树的节点的各关键属性项信息中,除所检测到的关键属性项信息之外的其他关键属性项信息所对应的差异因子;将所获取到的所有差异因子相加,得到节点对的属性信息的子差异度。
[0058]例如:节点对W中属于第一 DOM树的节点包含有3个关键属性项信息:属性项Kl信息(对应的差异因子为Pl)、属性项K2信息(对应的差异因子为P2)和属性项K3信息(对应的差异因子为P3);
[0059]节点对W中属于第二 DOM树的节点包含有3个关键属性项信息:属性项K2信息、属性项K3信息和属性项K4信息(对应的差异因子为P4)。
[0060]经检测得到:节点对W中属于第二 DOM树的节点,不具备与节点对W中属于第一DOM树的节点的属性项Kl信息相同的属性项信息;
[0061]节点对W中属于第一 DOM树的节点的属性项K2信息,与节点对W中属于第二 DOM树的节点的属性项K2信息相同;
[0062]节点对W中属于第一 DOM树的节点的属性项K3信息,与节点对W中属于第二 DOM树的节点的属性项K3信息不同;
[0063]则节点对W的属性信息的子差异度,可为:P1+P3。
[0064]当然,还可通过任意的相似度计算方法,先计算得到节点对的属性信息的相似度(小于或等于I的数值),然后用I减去得到的相似度,作为节点对的属性信息的子差异度。
[0065]操作220、对计算得到的各个子差异度进行加权求和。
[0066]示例性的,可预先设定与计算得到的各个子差异度对应的加权系数相等,直接将计算得到的各个子差异度求和。
[0067]在本发明实施例中,任意节点的结构信息,为用于描述该节点在所在DOM树中的结构的信息,可包括节点高度以及子节点数目。其中,节点高度为该节点到达根节点所要经过的父节点的个数。节点高度越小,子节点数目越大,表明该节点对所在DOM树中的结构的影响程度越大,随之该节点的属性信息也亦越关键。为此,可根据节点的结构信息中的节点高度和/或子节点数目,为该节点分配一个加权系数。
[0068]在本实施例的一种【具体实施方式】中,对计算得到的各个子差异度进行加权求和,包括:
[0069]生成与计算得到的各个子差异度对应的加权系数,其中加权系数是根据计算子差异度时对应的节点对中属于第一 DOM树的节点的结构信息得到的系数;
[0070]将计算得到的各个子差异度乘以对应的加权系数,并进行求和。
[0071]示例性的,节点对中属于第一 DOM树的节点的高度越小,子节点数目越大,其所对应的加权系数也越大。
[0072]操作230、根据加权求和结果,以及第二集合中节点的个数,确定第一 DOM树与第二 DOM树之间的节点属性差异度。
[0073]示例性的,根据加权求和结果,以及第二集合中节点的个数,确定第一 DOM树与第二 DOM树之间的节点属性差异度,包括:
[0074]按照如下公式,确定第一 DOM树与第二 DOM树之间的节点属性差异度Diffl:
[0075]Diffl = (xll+xl2)/numberI
[0076]其中,xll为加权求和结果;xl2为第二集合中节点的个数,numberl为第一 DOM树中的节点的总个数。
[0077]参见图2B,本实施例提供的计算两DOM树间结构差异度的方法,具体包括如下操作:
[0078]操作240、分别针对第二集合中的各个节点:根据节点的结构信息,计算节点的结构差异权值,其中结构差异权值为大于0,且小于或等于I的数值。
[0079]示例性的,可按照如下公式,计算节点的结构差异权值Q:
[0080]Q = ql (h) +q2 (η)
[0081]其中,ql (h)为以节点的结构信息中的节点高度h为变量的第一函数,q2 (η)为以节点的结构信息中的子节点数目η为变量的第二函数。优选的,第一函数为函数值与节点高度h成反比关系的函数,第二函数为函数值与子节点数目η成正比关系的函数。
[0082]操作250、对计算得到的各个结构差异权值进行求和运算。
[0083]操作260、将求和运算结果与第一 DOM树中节点的总个数的比值,作为第一 DOM树与第二 DOM树之间的结构差异度。
[0084]实施例三
[0085]图3是本发明实施例三提供的一种确定界面布局兼容度的方法的流程示意图。本实施例以上述所有实施例为基础,提供一优选实施例。本实施例提供的方法可以由确定界面布局兼容度的装置来执行,所述装置由软件实现,被内置在智能手机上。本实施例可适用于新版本的智能手机软件中的界面布局文件对旧版本的智能手机软件中的界面布局文件的兼容度的计算情况。在采用本实施例提供的方法得到界面布局兼容度之后,可根据所得到的兼容度的大小,来确定是否需要对与旧版本的智能手机软件中的界面布局文件有关联的脚本进行修改。例如,当所得到的兼容度低于设定阈值(例如0.75)时,确定需要对与旧版本的智能手机软件中的界面布局文件有关联的脚本进行修改。参见图3,本实施例提供的确定界面布局兼容度的方法,具体包括如下操作:
[0086]操作310、利用apache xml解析器,分别对第一界面布局文件和第二界面布局文件进行解析,得到相应的两个DOM树:第一 DOM树和第二 DOM树。
[0087]其中,第一界面布局文件为旧版本的智能手机软件中的界面布局文件,对应于第一 DOM树;第二界面布局文件为新版本的智能手机软件中的界面布局文件,对应于第二 DOM树。
[0088]操作320、采用后序遍历的方式,分别遍历所得到的各个DOM树:将当前所遍历的DOM树中每个节点的特征信息作为
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1