一种xml文本定位方法

文档序号:8223606阅读:226来源:国知局
一种xml文本定位方法
【技术领域】
[0001] 本发明涉及一种XML文本定位技术,尤其涉及一种基于DOM模型的XML文本定位 技术。
【背景技术】
[0002] DOM(文档对象模型)是W3C(万维网联盟)的推荐标准。DOM定义了访问和处理 诸如XML和XHTML文档的标准。DOM(文档对象模型)是一个使程序和脚本有能力动态地访 问和更新文档的内容、结构以及样式的平台和语言中立的接口。
[0003] XML DOM定义了所有XML元素的对象和属性,以及访问它们的方法(接口)。换句 话说,XML DOM是用于获取、更改、添加或删除XML元素的标准。
[0004] XML文档的DOM模型主要是实现了数据和界面的交互,即通过XML数据描述,将该 数据显示为文本或图形的方式,而DOM模型作为控制该数据的一种编程方法。由于DOM模 型和XML数据是对应的映射关系,在应用过程中,可以先修改DOM模型数据,然后导出对应 的XML数据;也可以先修改XML数据后,再更新DOM模型。如网页设计,可直接通过图形化 界面操作,也可以通过文本化的操作方式,但不管用哪种方式来修改,DOM模型始终是同一 个。目前,一般应用软件都采用修改XML文本之后,重新加载该文本数据,重新生成对应的 DOM模型。删除原有DOM模型,再重新解析XML文件或内存数据重新形成DOM模型,这种方 式对于比较小XML文件或内存数据可能影响不大,但对于大的XML文件或内存数据,显然效 率不尚。
[0005] 如果希望在保持现有DOM模型和XML数据的映射关系的情况下,实现局部XML文 本数据的修改,以便将修改后的局部XML文本快速映射到DOM结构,适应大文件的XML编辑 模式,则存在一个新的问题:如何快速地从DOM结构的节点映射到XML文本中。

【发明内容】

[0006] 本发明主要解决的技术问题是提供一种XML文本定位方法,使得能够无需进行文 本内容的比对,快速定位DOM模型节点对象所对应的XML文本位置。
[0007] 为了解决上述技术问题,本发明提供了一种XML文本定位方法,包含以下步骤:
[0008] 在DOM模型的节点对象上保存该节点对象的文本索引和文本偏移量;文本索引 为:该节点对象的XML文本在整个XML文本中的初始位置;文本偏移量为:该节点对象的 XML文本被修改后,其修改后的文本长度与初始文本长度的差值;
[0009] 在DOM模型中的节点对象被选中时,将该节点对象的文本索引、和该节点对象所 有上层兄弟节点、所有父节点、和所有父节点的上层兄弟节点的文本偏移量叠加,定位该节 点对象对应的XML文本位置。
[0010] 作为进一步改进,该方法还可以包含以下步骤:
[0011] 在DOM模型的节点对象上保存该节点对象当前的文本内容。
[0012] 作为进一步改进,该方法还可以包含以下步骤:
[0013]在DOM模型中节点对象对应的XML文本被修改时,如果修改后的文本长度与修改 前文本长度不同,则根据两者的差值修改该节点对象的文本偏移量。
[0014] 作为进一步改进,根据修改前后文本长度的差值修改该节点对象的文本偏移量的 步骤中,如果修改后的文本长度小于修改前的文本长度,则在当前文本偏移量基础上减去 该差值,如果修改后的文本长度大于修改前的文本长度,则在当前文本偏移量的基础上加 上该差值。
[0015] 作为进一步改进,该方法还可以包含以下步骤:
[0016] 在D0M模型中节点对象被删除时,对该被删除节点最近的上层节点的文本偏移量 进行修改,将其文本偏移量减去该被删除节点当前的文本长度和文本偏移量。
[0017] 作为进一步改进,该方法还可以包含以下步骤:
[0018] 在D0M模型中新增节点对象时,该新增的节点的文本索引为其最近的上层节点当 前的文本长度、文本偏移量与文本索引之和,该新增的节点的文本偏移量为其初始文本长 度。
[0019] 作为进一步改进,在D0M模型的节点对象上保存该节点对象当前的文本内容的步 骤中:
[0020] 对于叶子节点,保存该节点对象对应的所有XML文本内容,对于非叶子节点,保存 该节点对象对应的前半部分XML文本内容。
[0021] 作为进一步改进,上述文本长度包含换行符。
[0022] 本发明实施方式与现有技术相比,主要区别及其效果在于:在D0M模型的节点对 象上保存该节点对象的文本索引和文本偏移量;文本索引为:该节点对象的XML文本在整 个XML文本中的初始位置;文本偏移量为:该节点对象的XML文本被修改后,其修改后的文 本长度与初始文本长度的差值;在D0M模型中的节点对象被选中时,将该节点对象的文本 索引、和该节点对象所有上层兄弟节点、所有父节点、和所有父节点的上层兄弟节点的文本 偏移量叠加,定位该节点对象对应的XML文本位置。使得能够无需进行文本内容的比对,快 速定位D0M模型节点对象所对应的XML文本位置,从而可以方便实现局部XML文本数据的 修改,且使得修改后的数据可以快速映射到原始D0M结构,可以加快XML文本编辑的速度, 可应用于大文件的XML编辑模式。
【附图说明】
[0023] 图1是本发明一较佳实施方式中XML文本定位方法的流程图。
[0024] 图2是本发明一较佳实施方式中在D0M模型的节点对象上保存该节点对象的文本 内容、文本索引和文本偏移量的模型图。
【具体实施方式】
[0025] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施 方式作进一步地详细描述。
[0026] 本发明一较佳实施方式涉及一种XML文本定位方法,其具体流程图如图1所示。
[0027] 步骤101中,在D0M模型的节点对象上保存该节点对象的文本内容、文本索引和文 本偏移量;文本索引为:该节点对象的XML文本在整个XML文本中的初始位置;文本偏移量 为:该节点对象的XML文本被修改后,其修改后的文本长度与初始文本长度的差值。本实施 方式中,文本偏移量的初始值为0。
[0028] 本步骤中:对于叶子节点,初始文本长度为该节点对象对应的所有XML文本的长 度;对于非叶子节点,初始文本长度为该节点对象对应的前半部分XML文本的长度。
[0029] 步骤102中,DOM模型中某个节点对象被选中。
[0030]步骤103中,将该节点对象的文本索引、和该节点对象所有上层兄弟节点、所有父 节点、和所有父节点的上层兄弟节点的文本偏移量叠加,定位该节点对象对应的XML文本 位置。
[0031] 查找所有上层兄弟节点、所有父节点、和所有父节点的上层兄弟节点的文本偏移 量的过程是:先找自己上层兄弟节点的文本偏移量,再找父节点的文本偏移量,再找父节点 的上层兄弟节点的文本偏移量,以此类推,直到根节点。
[0032] 步骤104中,该节点对象对应的XML文本被修改。
[0033] 步骤105中,判断修改后的XML文本长度与初始修改前的文本长度是否相同,如果 修改后的文本长度与初始修改前文本长度不同,则进入步骤106,根据两者的差值设置修改 该节点对象的文本偏移量。具体地说,如果修改后的文本长度小于初始修改前的文本长度, 则在当前文本偏移量基础上减去该差值,如果修改后的文本长度大于修改前的文本长度, 则在当前文本偏移量的基础上加上该差值。则文本偏移量为负值,如果修改后的文本长度 大于初始文本长度,则文本偏移量为正值。如果修改后的文本长度与初始文本长度相同,则 结束本流程不对该节点的文本偏移量。
[0034] 举例而言,当前有XML文本文件内容如下:
【主权项】
1. 一种XML文本定位方法,其特征在于,包含W下步骤: 在DOM模型的节点对象上保存该节点对象的文本索引和文本偏移量;所述文本索引 为;该节点对象的XML文本在整个XML文本中的初始位置;所述文本偏移量为;该节点对象 的XML文本被修改后,其修改后的文本长度与初始文本长度的差值; 在所述DOM模型中的节点对象被选中时,将该节点对象的文本索引、和该节点对象所 有上层兄弟节点、所有父节点、和所有父节点的上层兄弟节点的文本偏移量叠加,定位该节 点对象对应的XML文本位置。
2. 根据权利要求1所述的XML文本定位方法,其特征在于,还包含W下步骤: 在DOM模型的节点对象上保存该节点对象当前的文本内容。
3. 根据权利要求2所述的XML文本定位方法,其特征在于,还包含W下步骤: 在所述DOM模型中节点对象对应的XML文本被修改时,如果修改后的文本长度与修改 前文本长度不同,则根据两者的差值修改该节点对象的文本偏移量。
4. 根据权利要求3所述的XML文本定位方法,其特征在于,所述根据修改前后文本长度 的差值修改该节点对象的文本偏移量的步骤中,如果修改后的文本长度小于修改前的文本 长度,则在当前文本偏移量基础上减去该差值,如果修改后的文本长度大于修改前的文本 长度,则在当前文本偏移量的基础上加上该差值。
5. 根据权利要求2所述的XML文本定位方法,其特征在于,还包含W下步骤: 在所述DOM模型中节点对象被删除时,对该被删除节点最近的上层节点的文本偏移量 进行修改,将其文本偏移量减去该被删除节点当前的文本长度和文本偏移量。
6. 根据权利要求2所述的XML文本定位方法,其特征在于,还包含W下步骤: 在所述DOM模型中新增节点对象时,该新增的节点的文本索引为其最近的上层节点当 前的文本长度、文本偏移量与文本索引之和,该新增的节点的文本偏移量为其初始文本长 度。
7. 根据权利要求2所述的XML文本定位方法,其特征在于,所述在DOM模型的节点对象 上保存该节点对象当前的文本内容的步骤中: 对于叶子节点,保存该节点对象对应的所有XML文本内容,对于非叶子节点,保存该节 点对象对应的前半部分XML文本内容。
8. 根据权利要求1至7中任意一项所述的XML文本定位方法,其特征在于,所述文本长 度包含换行符。
【专利摘要】本发明公开了一种XML文本定位方法,包含以下步骤:在DOM模型的节点对象上保存该节点对象的文本索引和文本偏移量;文本索引为:该节点对象的XML文本在整个XML文本中的初始位置;文本偏移量为:该节点对象的XML文本被修改后,其修改后的文本长度与初始文本长度的差值;在DOM模型中的节点对象被选中时,将该节点对象的文本索引、和该节点对象所有上层兄弟节点、所有父节点、和所有父节点的上层兄弟节点的文本偏移量叠加,定位该节点对象对应的XML文本位置。使得能够无需进行文本内容的比对,快速定位DOM模型节点对象所对应的XML文本位置。
【IPC分类】G06F17-30
【公开号】CN104537084
【申请号】CN201410855376
【发明人】林 吉, 俞高宇, 张晓华
【申请人】上海可鲁系统软件有限公司
【公开日】2015年4月22日
【申请日】2014年12月31日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1