一种数据处理方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种数据处理方法和装置。
背景技术
异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。
但这也就造成了一个问题:由于各个一个数据库系统中数据存储格式不相同,异构数据库系统在不同网络之间进行数据交换非常繁琐,传统办法是通过人工进行手动输入,面对大量的数据录入和大量的业务办理,这种重复操作加重办理人员的工作量,带来疲劳,这种方法准确率,效率都不高。因此需要对数据进行适当的处理以便进行数据交换。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据处理方法和装置。
依据本发明的一个方面,提供了一种数据处理方法,包括:
对网页页面进行分析,确定网页页面中的文档页面模型DOM元素;
根据DOM元素取得网页页面中的各控件的对应值;
根据网页页面中的各控件的标识或名称,将各控件的对应值存入指定格式的文件中与各控件的标识或名称对应的项下。
可选地,所述对网页页面进行分析,确定网页页面中的文档页面模型DOM元素包括:
确定一个或多个正在运行的IE内核浏览器的辅助进程;
根据每个辅助进程确定该辅助进程对应的网页页面中的DOM元素。
可选地,所述根据DOM元素取得网页页面中的各控件的对应值包括:
对于text控件、textarea控件、checkbox控件、radio控件和select控件中的一种或多种,通过第一数据字典取得这些控件的对应值;
对于table控件,根据该控件中对应值所处列的列名及对应值在控件中的行号,通过第二数据字典取得该控件的对应值;
对于不存在标识或名称的自定义控件,根据页面结构为该自定义控件进行自动编码,通过第三数据字典取得该自定义控件的对应值。
可选地,该方法进一步包括:
如果一个网页页面中确定的DOM元素中包含IFRAME标签,则根据IFRAME标签进一步确定该网页页面的URL下的所有子URL,对每个子URL对应的网页页面都进行如上述的数据处理。
可选地,该方法进一步包括:将网页页面中的各控件进行分类;
所述根据网页页面中的各控件的标识或名称,将各控件的对应值存入指定格式的文件中与各控件的标识或名称对应的项下包括:对于网页页面中的每一类控件,根据该类中的各控件的标识或名称,将该类的各控件的对应值存入该类的指定格式的文件中对应的项下。
依据本发明的另一方面,提供了一种数据处理装置,包括:
网页页面分析单元,适于对网页页面进行分析,确定网页页面中的文档页面模型DOM元素;
控件取值单元,适于根据DOM元素取得网页页面中的各控件的对应值;
写入单元,适于根据网页页面中的各控件的标识或名称,将各控件的对应值存入指定格式的文件中与各控件的标识或名称对应的项下。
可选地,所述网页页面分析单元,适于确定一个或多个正在运行的IE内核浏览器的辅助进程;根据每个辅助进程确定该辅助进程对应的网页页面中的DOM元素。
可选地,所述控件取值单元,适于对于text控件、textarea控件、checkbox控件、radio控件和select控件中的一种或多种,通过第一数据字典取得这些控件的对应值;对于table控件,根据该控件中对应值所处列的列名及对应值在控件中的行号,通过第二数据字典取得该控件的对应值;对于不存在标识或名称的自定义控件,根据页面结构为该自定义控件进行自动编码,通过第三数据字典取得该自定义控件的对应值。
可选地,所述网页页面分析单元,当一个网页页面中确定的DOM元素中包含IFRAME标签时,进一步适于根据IFRAME标签进一步确定该网页页面的URL下的所有子URL;
所述网页页面分析单元、控件取值单元和写入单元对每个子URL对应的网页页面都进行如上述的数据处理。
可选地,该装置进一步包括:
控件分类单元,适于将网页页面中的各控件进行分类;
所述写入单元,适于对于网页页面中的每一类控件,根据该类中的各控件的标识或名称,将该类的各控件的对应值存入该类的指定格式的文件中对应的项下。
由上述可知,本发明的技术方案,通过对网页页面进行分析,确定该网页页面中的DOM(Document Object Model,文档页面模型)元素,进一步根据DOM元素取得网页页面中的各控件的对应值,最后根据网页页面中的各控件的标识或名称,将各控件的对应值存入指定格式的文件中与各控件的标识或名称对应的项下,得到适于数据交换的指定格式的文件。该技术方案不仅可以有效获取页面信息,还能将得到的数据写入指定格式的文件以便进一步在异构系统中进行数据交换,不再需要人工完成数据录入,不仅大大提高了效率,准确率也可以基本达到100%。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种数据处理方法的流程图;
图2示出了根据本发明一个实施例的一种数据处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种数据处理方法的流程图,如图1所示,该方法包括:
步骤S110,对网页页面进行分析,确定网页页面中的DOM元素。
步骤S120,根据DOM元素取得网页页面中的各控件的对应值。
步骤S130,根据网页页面中的各控件的标识或名称,将各控件的对应值存入指定格式的文件中与各控件的标识或名称对应的项下。
优选地,指定格式的文件为XML文件。XML(Extensible Markup Language,可扩展标记语言)是一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据,是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具,适用于异构系统。
当得到包含网页页面信息的指定格式的文件后,还可以进一步将该指定格式文件中的各项中的值写入异构系统中的网页页面中。具体地,可以在该异构系统中执行步骤S110和步骤S120,并进一步根据网页页面中的各控件的标识或名称,从指定格式的文件中找到与各控件的标识或名称对应的项,将该项下的值对应写入这些控件。
可见,图1所示的方法,通过对网页页面进行分析,确定该网页页面中的DOM(Document Object Model,文档页面模型)元素,进一步根据DOM元素取得网页页面中的各控件的对应值,最后根据网页页面中的各控件的标识或名称,将各控件的对应值存入指定格式的文件中与各控件的标识或名称对应的项下,得到适于数据交换的指定格式的文件。该技术方案不仅可以有效获取页面信息,还能将得到的数据写入指定格式的文件以便进一步在异构系统中进行数据交换,不再需要人工完成数据录入,不仅大大提高了效率,准确率也可以基本达到100%。
在本发明的一个实施例中,图1所示的方法中,所述对网页页面进行分析,确定网页页面中的DOM元素包括:确定一个或多个正在运行的IE内核浏览器的辅助进程;根据每个辅助进程确定该辅助进程对应的网页页面中的DOM元素。
对于IE内核版本较高(IE8以上)的IE内核浏览器,在浏览器启动后,除了浏览器主进程外,还会对应每个打开的网页页面创建一个辅助进程。因此在这种情况下,就可以通过确定的一个或多个正在运行的IE内核浏览器的辅助进程,进一步确定每个辅助进程对应的网页页面中的DOM元素。具体地,可以通过调用Enum Processes函数枚举当前运行的进程,找到进程名为“iexplore”等IE内核的浏览器的进程名,并进一步判断该进程是否对应一个网页页面(浏览器主进程并不对应单独的一个网页页面)来确定正在运行的辅助进程,进一步地,通过调用Ihtmldocument2这个COM接口来获取页面中的DOM元素。其中,COM(Component Object Model,组件对象模型),是由微软推出的一套接口规范,通过设定不同组件之间需要遵守的标准与协议,主要用来跨语言、跨进程之间的模块通信。com是一种说明如何建立可动态互变组件的规范,此规范提供了为保证能够互操作,客户和组件应遵循的一些二进制和网络标准。通过这种标准将可以在任意两个组件之间进行通信而不用考虑其所处的操作环境是否相同、使用的开发语言是否一致以及是否运行于同一台计算机。
在本发明的一个实施例中,图1所示的方法中,所述根据DOM元素取得网页页面中的各控件的对应值包括:对于text控件、textarea控件、checkbox控件、radio控件和select控件中的一种或多种,通过第一数据字典取得这些控件的对应值;对于table控件,根据该控件中对应值所处列的列名及对应值在控件中的行号,通过第二数据字典取得该控件的对应值;对于不存在标识或名称的自定义控件,根据页面结构为该自定义控件进行自动编码,通过第三数据字典取得该自定义控件的对应值。
在本实施例中,考虑到网页页面中控件的种类,采用了三种数据字典对控件的对应值进行取值,这样可以更方便地通过数据字典将取得的对应值写入指定格式的文件中。对于存在标识ID或名称NAME的控件,如text控件、radio控件等,可以根据本实施例中所提供的方法,将取得的对应值存入第一数据字典中。而对于table控件,该控件用于在网页页面上创建表格,考虑到该特性,可以根据对应值所处列的列名和行号,定位对应值在表格中的位置,并将取得的对应值存入第二数据字典。对于不存在ID或NAME的控件,可以根据对页面元素的排序,对该控件进行定位,即在该网页页面中,该控件是第几个控件,根据类似这样的自动编码,通过第三数据字典来对该自定义控件的对应值进行取值。这样就要针对这三类控件,编写好第一、第二和第三数据字典。
在网页页面中,往往以嵌套IFRAME的方式,使得该页面的一级URL中包含多个子URL,这些子URL对应网页页面中也存在需要处理的数据。因此在本发明的一个实施例中,图1所示的方法进一步包括:如果一个网页页面中确定的DOM元素中包含IFRAME标签,则根据IFRAME标签进一步确定该网页页面的URL下的所有子URL,对每个子URL对应的网页页面都进行如上述的数据处理。在具体实施中可以采用递归查找,这样可以支持多个IFRAME标签嵌套的情况。
在本发明的一个实施例中,图1所示的方法进一步包括:将网页页面中的各控件进行分类;所述根据网页页面中的各控件的标识或名称,将各控件的对应值存入指定格式的文件中与各控件的标识或名称对应的项下包括:对于网页页面中的每一类控件,根据该类中的各控件的标识或名称,将该类的各控件的对应值存入该类的指定格式的文件中对应的项下。
在本实施例中,考虑到指定格式的文件还可以用于数据交换,在进行数据交换时,需要将文件中各项的数据写入异构系统的网页页面中,这样就需要对网页页面进行如上述的数据处理,因此将控件进行分类,每类控件分别采用一个文件进行对应值的存储便于数据交换。例如,将普通控件如text控件、radio控件等分为一类,将自定义控件分为一类。又例如,在前述实施例的基础上,对第一、第二、第三数据字典各分一类,将每一数据字典中取得的控件的对应值存入与该字典对应的指定格式的文件中对应的项下。
图2示出了根据本发明一个实施例的一种数据处理装置的结构示意图,如图2所示,数据处理装置200包括:
网页页面分析单元210,适于对网页页面进行分析,确定网页页面中的DOM元素。
控件取值单元220,适于根据DOM元素取得网页页面中的各控件的对应值。
控件取值单元230,适于根据网页页面中的各控件的标识或名称,将各控件的对应值存入指定格式的文件中与各控件的标识或名称对应的项下。
优选地,指定格式的文件为XML文件。当得到包含网页页面信息的指定格式的文件后,还可以进一步将该指定格式文件中的各项中的值写入异构系统中的网页页面中。具体地,可以在该异构系统中通过网页页面分析单元210确定网页页面中的DOM元素,控件取值单元220根据DOM元素取得网页页面中的各控件的对应值后,写入单元230根据网页页面中的各控件的标识或名称,从指定格式的文件中找到与各控件的标识或名称对应的项,将该项下的值对应写入这些控件。
可见,图2所示的装置,通过对网页页面进行分析,确定该网页页面中的DOM(Document Object Model,文档页面模型)元素,进一步根据DOM元素取得网页页面中的各控件的对应值,最后根据网页页面中的各控件的标识或名称,将各控件的对应值存入指定格式的文件中与各控件的标识或名称对应的项下,得到适于数据交换的指定格式的文件。该技术方案不仅可以有效获取页面信息,还能将得到的数据写入指定格式的文件以便进一步在异构系统中进行数据交换,不再需要人工完成数据录入,不仅大大提高了效率,准确率也可以基本达到100%。
在本发明的一个实施例中,图2所示的装置中,所述网页页面分析单元,适于确定一个或多个正在运行的IE内核浏览器的辅助进程;根据每个辅助进程确定该辅助进程对应的网页页面中的DOM元素。
对于IE内核版本较高(IE8以上)的IE内核浏览器,在浏览器启动后,除了浏览器主进程外,还会对应每个打开的网页页面创建一个辅助进程。因此在这种情况下,就可以通过确定的一个或多个正在运行的IE内核浏览器的辅助进程,进一步确定每个辅助进程对应的网页页面中的DOM元素。具体地,可以通过调用Enum Processes函数枚举当前运行的进程,找到进程名为“iexplore”等IE内核的浏览器的进程名,并进一步判断该进程是否对应一个网页页面(浏览器主进程并不对应单独的一个网页页面)来确定正在运行的辅助进程,进一步地,通过调用Ihtmldocument2这个COM接口来获取页面中的DOM元素。
在本发明的一个实施例中,图2所示的装置中,所述控件取值单元,适于对于text控件、textarea控件、checkbox控件、radio控件和select控件中的一种或多种,通过数据字典取得这些控件的对应值;
对于text控件、textarea控件、checkbox控件、radio控件和select控件中的一种或多种,通过第一数据字典取得这些控件的对应值;对于table控件,根据该控件中对应值所处列的列名及对应值在控件中的行号,通过第二数据字典取得该控件的对应值;对于不存在标识或名称的自定义控件,根据页面结构为该自定义控件进行自动编码,通过第三数据字典取得该自定义控件的对应值。
在本实施例中,考虑到网页页面中控件的种类,采用了三种数据字典对控件的对应值进行取值,这样可以更方便地通过数据字典将取得的对应值写入指定格式的文件中。对于存在标识ID或名称NAME的控件,如text控件、radio控件等,可以根据本实施例中所提供的方法,将取得的对应值存入第一数据字典中。而对于table控件,该控件用于在网页页面上创建表格,考虑到该特性,可以根据对应值所处列的列名和行号,定位对应值在表格中的位置,并将取得的对应值存入第二数据字典。对于不存在ID或NAME的控件,可以根据对页面元素的排序,对该控件进行定位,即在该网页页面中,该控件是第几个控件,根据类似这样的自动编码,通过第三数据字典来对该自定义控件的对应值进行取值。这样就要针对这三类控件,编写好第一、第二和第三数据字典。
在网页页面中,往往以嵌套IFRAME的方式,使得该页面的一级URL中包含多个子URL,这些子URL对应网页页面中也存在需要处理的数据。因此,在本发明的一个实施例中,图2所示的装置中,所述网页页面分析单元,当一个网页页面中确定的DOM元素中包含IFRAME标签时,进一步适于根据IFRAME标签进一步确定该网页页面的URL下的所有子URL;所述网页页面分析单元、控件取值单元和写入单元对每个子URL对应的网页页面都进行如上述的数据处理。在具体实施中可以采用递归查找,这样可以支持多个IFRAME标签嵌套的情况。
在本发明的一个实施例中,图2所示的装置进一步包括:控件分类单元,适于将网页页面中的各控件进行分类;所述写入单元,适于对于网页页面中的每一类控件,根据该类中的各控件的标识或名称,将该类的各控件的对应值存入该类的指定格式的文件中对应的项下。
在本实施例中,考虑到指定格式的文件还可以用于数据交换,在进行数据交换时,需要将文件中各项的数据写入异构系统的网页页面中,这样就需要对网页页面进行如上述的数据处理,因此将控件进行分类,每类控件分别采用一个文件进行对应值的存储便于数据交换。例如,将普通控件如text控件、radio控件等分为一类,将自定义控件分为一类。又例如,在前述实施例的基础上,对第一、第二、第三数据字典各分一类,将每一数据字典中取得的控件的对应值存入与该字典对应的指定格式的文件中对应的项下。
综上所述,本发明的技术方案,通过对网页页面进行分析,确定该网页页面中的DOM(Document Object Model,文档页面模型)元素,进一步根据DOM元素取得网页页面中的各控件的对应值,最后根据网页页面中的各控件的标识或名称,将各控件的对应值存入指定格式的文件中与各控件的标识或名称对应的项下,得到适于数据交换的指定格式的文件。该技术方案不仅可以有效获取页面信息,还能将得到的数据写入指定格式的文件以便进一步在异构系统中进行数据交换,不再需要人工完成数据录入,不仅大大提高了效率,时间可以控制在2s左右,即使是数据量较大的情况也不超过10s,并且准确率也可以基本达到100%。特别是在异构系统存在用户自主构建的系统的情况下,通过此方法改造系统,可以实现多样化人性化的操作,例如表单数据直接导入,或者导出,无需任何人工干预。而且此方法不会对界面产生任何影响。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据处理装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。