CN113076721B - 一种基于XPath的编码长度控制方法以及装置 - Google Patents
一种基于XPath的编码长度控制方法以及装置 Download PDFInfo
- Publication number
- CN113076721B CN113076721B CN202110382646.0A CN202110382646A CN113076721B CN 113076721 B CN113076721 B CN 113076721B CN 202110382646 A CN202110382646 A CN 202110382646A CN 113076721 B CN113076721 B CN 113076721B
- Authority
- CN
- China
- Prior art keywords
- expression
- coding
- xpath
- determining
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000002789 length control Methods 0.000 title claims abstract description 26
- 230000014509 gene expression Effects 0.000 claims abstract description 220
- 230000004044 response Effects 0.000 claims description 18
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000006467 substitution reaction Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于XPath的编码长度控制方法以及装置,该方法包括:确定初始XPath对应的模式类别;基于模式类别和第一分隔符,将初始XPath划分成若干层级的编码表达式;对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式;基于各个编码表达式的简化表达式,生成目标XPath。本发明能够提高简化XPath、降低XPath编码长度。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种基于XPath的编码长度控制方法以及装置。
背景技术
目前,XPath作为XML路径语言,经常用于确定XML文档中某部分位置的语言。其功能强大,包含七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。
然而,在实际应用中,经常存在对于编码长度有一定要求的应用场景,如在文档书签中定义XPath,通常会要求XPath的编码长度不超过某个阈值。而现在的XPath的编码长度较长,无法满足上述应用场景的需求。可见,现在亟需一种简化XPath、能够降低XPath编码长度的方法。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于XPath的编码长度控制方法以及装置,以至少简化XPath、降低XPath编码长度。
根据本发明实施例的一个方面,提供了一种基于XPath的编码长度控制方法,包括:确定初始XPath对应的模式类别;基于所述模式类别和第一分隔符,将所述初始XPath划分成若干层级的编码表达式;对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式;基于各个编码表达式的简化表达式,生成目标XPath。
作为一种可选的实施方式,所述基于所述模式类别和第一分隔符,将所述初始XPath划分成若干层级的编码表达式,包括:基于所述初始XPath的层级信息,利用所述第一分隔符将所述初始XPath划分成若干层级;对于每个层级,响应于确定所述模式类别为第一类别,将该层级对应的编码表达式确定为预设的第一编码表达式;以及响应于确定所述模式类别为第二类别,将该层级对应的编码表达式确定为预设的第二编码表达式。
作为一种可选的实施方式,所述对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式,包括:对于每个层级的编码表达式,确定该编码表达式的各个子部分;对于每个子部分,在与该子部分对应的简化表中确定相应的简化字符;基于各个层级的各个子部分的简化字符和第二分隔符,得到各个编码表达式的简化表达式。
作为一种可选的实施方式,所述对于每个层级的编码表达式,确定该编码表达式的各个子部分,包括:对于每个层级的编码表达式,响应于确定所述模式类别为第一类别,确定该编码表达式的各个子部分为分类部分、属性部分以及属性值部分;响应于确定所述模式类别为第二类别,确定该编码表达式的各个子部分为分类部分、大写属性部分以及属性值部分。
作为一种可选的实施方式,所述方法还包括:对于每个子部分,选取该子部分在所述初始XPath中的字符串的首个字符,建立所述首个字符与该子部分在所述初始XPath中的字符串之间的对应关系,得到该子部分对应的简化表。
根据本发明实施例的另一方面,还提供了一种基于XPath的编码长度控制装置,包括:类别确定单元,被配置成确定初始XPath对应的模式类别;表达式划分单元,被配置成基于所述模式类别和第一分隔符,将所述初始XPath划分成若干层级的编码表达式;字符替换单元,被配置成对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式;目标生成单元,被配置成基于各个编码表达式的简化表达式,生成目标XPath。
作为一种可选的实施方式,所述表达式划分单元进一步被配置成:基于所述初始XPath的层级信息,利用所述第一分隔符将所述初始XPath划分成若干层级;对于每个层级,响应于确定所述模式类别为第一类别,将该层级对应的编码表达式确定为预设的第一编码表达式;以及响应于确定所述模式类别为第二类别,将该层级对应的编码表达式确定为预设的第二编码表达式。
作为一种可选的实施方式,所述字符替换单元进一步被配置成:对于每个层级的编码表达式,确定该编码表达式的各个子部分;对于每个子部分,在与该子部分对应的简化表中确定相应的简化字符;基于各个层级的各个子部分的简化字符和第二分隔符,得到各个编码表达式的简化表达式。
作为一种可选的实施方式,所述字符替换单元进一步被配置成:对于每个层级的编码表达式,响应于确定所述模式类别为第一类别,确定该编码表达式的各个子部分为分类部分、属性部分以及属性值部分;响应于确定所述模式类别为第二类别,确定该编码表达式的各个子部分为分类部分、大写属性部分以及属性值部分。
作为一种可选的实施方式,所述字符替换单元进一步被配置成:对于每个子部分,选取该子部分在所述初始XPath中的字符串的首个字符,建立所述首个字符与该子部分在所述初始XPath中的字符串之间的对应关系,得到该子部分对应的简化表。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述基于XPath的编码长度控制方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的基于XPath的编码长度控制方法。
在本发明实施例中,可以基于初始XPath对应的模式类别和第一分隔符,将初始XPath划分成若干层级的编码表达式,对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式,基于各个编码表达式的简化表达式,生成目标XPath。这一过程能够通过划分初始XPath、字符串简化替换的方式,生成编码长度更少的目标XPath,能够提高简化XPath、降低XPath编码长度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的基于XPath的编码长度控制方法的流程图;
图2是根据本发明实施例的另一种可选的基于XPath的编码长度控制方法的流程图;
图3是根据本发明实施例的一种可选的基于XPath的编码长度控制装置的结构示意图;
图4是根据本发明实施例的一种可选的电子装置的结构示意图;
图5是根据本发明实施例的一种可选的基于XPath的编码长度控制方法的应用示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种可选的基于XPath的编码长度控制方法,如图1所示,该基于XPath的编码长度控制方法包括:
S101,确定初始XPath对应的模式类别。
在本发明实施例中,初始XPath是编码长度较长、需要控制长度的XML路径语言。可选的,执行主体(如终端设备)可以在获取到初始XPath之后,进一步确定初始XPath的编码长度是否超过预设的阈值,如果超过再执行步骤S101至步骤S104。进一步的,执行主体在确定出初始XPath需要进行编码长度控制之后,可以进一步分析初始XPath的各个字符,基于分析结果确定初始XPath对应的模式类别。模式类别主要包括以下两种:“//tag[@属性='属性值']”、“//tag[contains(@属性,'属性值')]”。执行主体可以通过将初始XPath的字符与这两种模式类别对应的字符进行比对,可以得到初始XPath对应的模式类别。
S102,基于所述模式类别和第一分隔符,将所述初始XPath划分成若干层级的编码表达式。
在本发明实施例中,初始XPath可以包括多种层级的定位,如二级、三级的定位,对于初始XPath所包括的多级定位,可以采用第一分隔符分隔不同层级的定位。并且,对于不同的模式类别而言,分隔后的不同层级的字符组成方式不同。也即是,若干层级的编码表达式中采用第一分隔符分隔不同层级的编码表达式,若干层级中的每个层级采用模式类别对应的字符组成方式进行表达,得到若干层级的编码表达式。不同层级的编码表达式用于指示不同层级的定位方式。
S103,对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式。
在本发明实施例中,对于每个层级的编码表达式,该编码表达式中的字符串长度可能会超过预设的阈值,此时需要对字符串进行简化处理。具体的,对于每个编码表达式而言,可以预先设置与该编码表达式相匹配的长度阈值。之后,可以将该编码表达式和预先设置相匹配的阈值进行比较,如果比较结果指示该编码表达式的长度超过了阈值,可以再将该编码表达式中的各个字符串替换为相应的简化字符。从而有针对性地对不同的编码表达式进行字符替换,实现更灵活的长度控制。进一步的,执行主体可以预先存储有各个字符串与各个简化字符之间的对应关系,之后基于对应关系查询与各个字符串对应的简化字符,再将各个字符串替换为简化字符,得到各个编码表达式的简化表达式。
S104,基于各个编码表达式的简化表达式,生成目标XPath。
在本发明实施例中,可以将各个编码表达式的简化表达式采用第一分隔符连接,生成目标XPath。目标XPath是对初始XPath进行简化之后得到的编码长度较短、控制长度后的XML路径语言。
在本发明实施例中,可以基于初始XPath对应的模式类别和第一分隔符,将初始XPath划分成若干层级的编码表达式,对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式,基于各个编码表达式的简化表达式,生成目标XPath。这一过程能够通过划分初始XPath、字符串简化替换的方式,生成编码长度更少的目标XPath,能够提高简化XPath、降低XPath编码长度。
进一步的,本发明实施例提供了另一种可选的基于XPath的编码长度控制方法,如图2所示,该基于XPath的编码长度控制方法包括:
S201,确定初始XPath对应的模式类别。
在本发明实施例中,对于步骤S201的详细描述请参照对步骤S101的详细描述,在此不再赘述。
S202,基于所述初始XPath的层级信息,利用所述第一分隔符将所述初始XPath划分成若干层级。
在本发明实施例中,可以基于初始XPath的层级信息,确定出初始XPath的各个层级的分隔位置,之后,利用第一分隔符插入初始XPath的各个层级的分隔位置,将所述初始XPath划分成若干层级。
S203,对于每个层级,响应于确定所述模式类别为第一类别,将该层级对应的编码表达式确定为预设的第一编码表达式;以及响应于确定所述模式类别为第二类别,将该层级对应的编码表达式确定为预设的第二编码表达式。
在本发明实施例中,第一类别可以为“//tag[@属性='属性值']”,第二类别可以为“//tag[contains(@属性,'属性值')]”。如果某一层级的模式类别为第一类别,则可以将该层级的编码表达式确定为第一编码表达式,如“tag_属性_属性值”。如果某一层级的模式类别为第二类别,则可以将该层级的编码表达式确定为第二编码表达式,如“tag_属性全大写_属性值”。
S204,对于每个层级的编码表达式,确定该编码表达式的各个子部分。
在本发明实施例中,编码表达式可以为第二分隔符和各个子部分组成的表达式,如对于“tag_属性_属性值”而言,第二分隔符为“_”,各个子部分为tag、属性、属性值。执行主体可以定位每个层级的编码表达式的第二分隔符,之后,在第二分隔符的位置将编码表达式拆分为各个子部分。
作为一种可选的实施方式,所述对于每个层级的编码表达式,确定该编码表达式的各个子部分可以包括:对于每个层级的编码表达式,响应于确定所述模式类别为第一类别,确定该编码表达式的各个子部分为分类部分、属性部分以及属性值部分;响应于确定所述模式类别为第二类别,确定该编码表达式的各个子部分为分类部分、大写属性部分以及属性值部分。
在本发明实施例中,分类部分即为上述的“tag”。对于第一类别的编码表达式,也即是对于“tag_属性_属性值”而言,各个子部分为分类部分、属性部分以及属性值部分;对于第二类别的编码表达式,也即是对于“tag_属性全大写_属性值”而言,各个子部分为分类部分、大写属性部分以及属性值部分。
S205,对于每个子部分,在与该子部分对应的简化表中确定相应的简化字符。
在本发明实施例中,对于每个子部分,可以预设有简化表,简化表中存储着各个子部分的原始字符与简化字符之间的对应关系。在对子部分进行简化时,可以在该子字符对应的简化表中确定与原始字符对应的简化字符。
作为一种可选的实施方式,还可以执行以下步骤:对于每个子部分,选取该子部分在所述初始XPath中的字符串的首个字符,建立所述首个字符与该子部分在所述初始XPath中的字符串之间的对应关系,得到该子部分对应的简化表。
在本发明实施例中,可以采用子部分在初始XPath中的字符串的首个字符作为简化字符进行简化。在简化表中可以存储首个字符与原始全部字符之间的对应关系,其中,首个字符即为上述的简化字符,原始全部字符即为上述的原始字符。具体的,针对分类部分的简化表请参照表一:
表一
tag | tag简写 |
div | d |
input | i |
button | b |
针对属性部分的简化表请参照表二:
表二
属性 | 属性简写 |
id | i |
name | n |
class | c |
status | st |
针对大写属性部分的简化表请参照表三:
表三
属性 | 属性简写 |
id | I |
name | N |
class | C |
status | ST |
进一步可选的,对于属性值部分可以选取不采用简化方式。也即是,只对除属性值部分的其它各个子部分执行确定简化字符的操作。
S206,基于各个层级的各个子部分的简化字符和第二分隔符,得到各个编码表达式的简化表达式。
在本发明实施例中,在得到各个子部分的简化字符之后,可以基于简化字符和第二分隔符,生成每个层级的简化表达式。
S207,基于各个编码表达式的简化表达式,生成目标XPath。
在本发明实施例中,可以基于各个简化表达式和第一分隔符,生成最终的目标XPath。
请一并参阅图5,如图5所示,举例来说,初始XPath(图5中原始XPath)可以为:“xpath://div[@status='insert']//div[@name='sfkssqq']”,其中,初始XPath需要45字节进行存储,因此需要控制其编码长度缩短,降低存储量。首先确定“div[@status='insert']”对应的模式类别为第一类别,之后,基于初始XPath的层级信息,利用第一分隔符将其划分为两个层级,也即是“__div[@status='insert']__div[@name='sfkssqq']”。之后,对于层级“div[@status='insert']”和“div[@name='sfkssqq']”,确定编码表达式为第一编码表达式,也即是“tag_属性_属性值”。之后,对第一编码表达式中的各个子部分进行简化、替换,得到“d st insert”以及“d n sfkssqq”。其中,可选对属性值不进行简化。之后,可以采用第二分隔符和简化字符得到简化表达式,也即是得到“d_st_insert”、“d_n_sfkssqq”。再将简化表达式和第一分隔符进行拼接,生成目标XPath,“__d_st_insert__d_n_sfkssqq”或者“d_st_insert__d_n_sfkssqq”。最终得到的目标XPath仅需要25字节存储,节省了44.44%的存储量。
在本发明实施例中,可以基于初始XPath对应的模式类别和第一分隔符,将初始XPath划分成若干层级的编码表达式,对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式,基于各个编码表达式的简化表达式,生成目标XPath。这一过程能够通过划分初始XPath、字符串简化替换的方式,生成编码长度更少的目标XPath,能够提高简化XPath、降低XPath编码长度。
,需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述基于XPath的编码长度控制方法的基于XPath的编码长度控制装置。如图3所示,该装置包括:
类别确定单元301,被配置成确定初始XPath对应的模式类别。
表达式划分单元302,被配置成基于所述模式类别和第一分隔符,将所述初始XPath划分成若干层级的编码表达式。
字符替换单元303,被配置成对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式。
目标生成单元304,被配置成基于各个编码表达式的简化表达式,生成目标XPath。
作为一种可选的实施方式,所述表达式划分单元进一步被配置成:基于所述初始XPath的层级信息,利用所述第一分隔符将所述初始XPath划分成若干层级;对于每个层级,响应于确定所述模式类别为第一类别,将该层级对应的编码表达式确定为预设的第一编码表达式;以及响应于确定所述模式类别为第二类别,将该层级对应的编码表达式确定为预设的第二编码表达式。
作为一种可选的实施方式,所述字符替换单元进一步被配置成:对于每个层级的编码表达式,确定该编码表达式的各个子部分;对于每个子部分,在与该子部分对应的简化表中确定相应的简化字符;基于各个层级的各个子部分的简化字符和第二分隔符,得到各个编码表达式的简化表达式。
作为一种可选的实施方式,所述字符替换单元进一步被配置成:对于每个层级的编码表达式,响应于确定所述模式类别为第一类别,确定该编码表达式的各个子部分为分类部分、属性部分以及属性值部分;响应于确定所述模式类别为第二类别,确定该编码表达式的各个子部分为分类部分、大写属性部分以及属性值部分。
作为一种可选的实施方式,所述字符替换单元进一步被配置成:对于每个子部分,选取该子部分在所述初始XPath中的字符串的首个字符,建立所述首个字符与该子部分在所述初始XPath中的字符串之间的对应关系,得到该子部分对应的简化表。
在本发明实施例中,可以基于初始XPath对应的模式类别和第一分隔符,将初始XPath划分成若干层级的编码表达式,对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式,基于各个编码表达式的简化表达式,生成目标XPath。这一过程能够通过划分初始XPath、字符串简化替换的方式,生成编码长度更少的目标XPath,能够提高简化XPath、降低XPath编码长度。
根据本发明实施例的又一个方面,还提供了一种用于实施上述基于XPath的编码长度控制方法的电子设备,如图4所示,该电子设备包括存储器402和处理器404,该存储器402中存储有计算机程序,该处理器404被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,确定初始XPath对应的模式类别;
S2,基于所述模式类别和第一分隔符,将所述初始XPath划分成若干层级的编码表达式;
S3,对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式;
S4,基于各个编码表达式的简化表达式,生成目标XPath。
可选地,本领域普通技术人员可以理解,图4所示的结构仅为示意,电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图4其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图4中所示更多或者更少的组件(如网络接口等),或者具有与图4所示不同的配置。
其中,存储器402可用于存储软件程序以及模块,如本发明实施例中的基于XPath的编码长度控制方法和装置对应的程序指令/模块,处理器404通过运行存储在存储器402内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的基于XPath的编码长度控制方法。存储器402可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器402可进一步包括相对于处理器404远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器402具体可以但不限于用于存储操作指令等信息。作为一种示例,如图4所示,上述存储器402中可以但不限于包括上述基于XPath的编码长度控制装置中的类别确定单元301、表达式划分单元302、字符替换单元303和目标生成单元304。此外,还可以包括但不限于上述基于XPath的编码长度控制装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置406包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置406为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子设备还包括:显示器408,用于显示上述显示内容;和连接总线410,用于连接上述电子设备中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,确定初始XPath对应的模式类别;
S2,基于所述模式类别和第一分隔符,将所述初始XPath划分成若干层级的编码表达式;
S3,对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式;
S4,基于各个编码表达式的简化表达式,生成目标XPath。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种基于XPath的编码长度控制方法,其特征在于,包括:
确定初始XPath对应的模式类别;
基于所述模式类别和第一分隔符,将所述初始XPath划分成若干层级的编码表达式;
对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式;
基于各个编码表达式的简化表达式,生成目标XPath;
所述基于所述模式类别和第一分隔符,将所述初始XPath划分成若干层级的编码表达式,包括:
基于所述初始XPath的层级信息,利用所述第一分隔符将所述初始XPath划分成若干层级;
对于每个层级,响应于确定所述模式类别为第一类别,将该层级对应的编码表达式确定为预设的第一编码表达式;以及响应于确定所述模式类别为第二类别,将该层级对应的编码表达式确定为预设的第二编码表达式;
所述对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式,包括:
对于每个层级的编码表达式,确定该编码表达式的各个子部分;
对于每个子部分,在与该子部分对应的简化表中确定相应的简化字符;
基于各个层级的各个子部分的简化字符和第二分隔符,得到各个编码表达式的简化表达式;编码表达式为第二分隔符和各个子部分组成的表达式。
2.根据权利要求1所述的方法,其特征在于,所述对于每个层级的编码表达式,确定该编码表达式的各个子部分,包括:
对于每个层级的编码表达式,响应于确定所述模式类别为第一类别,确定该编码表达式的各个子部分为分类部分、属性部分以及属性值部分;响应于确定所述模式类别为第二类别,确定该编码表达式的各个子部分为分类部分、大写属性部分以及属性值部分。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于每个子部分,选取该子部分在所述初始XPath中的字符串的首个字符,建立所述首个字符与该子部分在所述初始XPath中的字符串之间的对应关系,得到该子部分对应的简化表。
4.一种基于XPath的编码长度控制装置,其特征在于,包括:
类别确定单元,被配置成确定初始XPath对应的模式类别;
表达式划分单元,被配置成基于所述模式类别和第一分隔符,将所述初始XPath划分成若干层级的编码表达式;
字符替换单元,被配置成对于各个层级的编码表达式,将该编码表达式中的各个字符串替换为相应的简化字符,得到各个编码表达式的简化表达式;
目标生成单元,被配置成基于各个编码表达式的简化表达式,生成目标XPath;
所述表达式划分单元进一步被配置成:
基于所述初始XPath的层级信息,利用所述第一分隔符将所述初始XPath划分成若干层级;
对于每个层级,响应于确定所述模式类别为第一类别,将该层级对应的编码表达式确定为预设的第一编码表达式;以及响应于确定所述模式类别为第二类别,将该层级对应的编码表达式确定为预设的第二编码表达式;
所述字符替换单元进一步被配置成:
对于每个层级的编码表达式,确定该编码表达式的各个子部分;
对于每个子部分,在与该子部分对应的简化表中确定相应的简化字符;
基于各个层级的各个子部分的简化字符和第二分隔符,得到各个编码表达式的简化表达式;编码表达式为第二分隔符和各个子部分组成的表达式。
5.根据权利要求4所述的装置,其特征在于,所述字符替换单元进一步被配置成:对于每个层级的编码表达式,响应于确定所述模式类别为第一类别,确定该编码表达式的各个子部分为分类部分、属性部分以及属性值部分;响应于确定所述模式类别为第二类别,确定该编码表达式的各个子部分为分类部分、大写属性部分以及属性值部分。
6.根据权利要求4所述的装置,其特征在于,所述字符替换单元进一步被配置成:对于每个子部分,选取该子部分在所述初始XPath中的字符串的首个字符,建立所述首个字符与该子部分在所述初始XPath中的字符串之间的对应关系,得到该子部分对应的简化表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110382646.0A CN113076721B (zh) | 2021-04-09 | 2021-04-09 | 一种基于XPath的编码长度控制方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110382646.0A CN113076721B (zh) | 2021-04-09 | 2021-04-09 | 一种基于XPath的编码长度控制方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113076721A CN113076721A (zh) | 2021-07-06 |
CN113076721B true CN113076721B (zh) | 2024-03-08 |
Family
ID=76615765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110382646.0A Active CN113076721B (zh) | 2021-04-09 | 2021-04-09 | 一种基于XPath的编码长度控制方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113076721B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1826598A (zh) * | 2003-07-21 | 2006-08-30 | 皇家飞利浦电子股份有限公司 | 在文档中搜索的方法 |
CN104484337A (zh) * | 2014-11-19 | 2015-04-01 | 西安电子科技大学 | Xml文档的存储方法 |
CN109241498A (zh) * | 2018-06-26 | 2019-01-18 | 中国建设银行股份有限公司 | Xml文件处理方法、设备和存储介质 |
CN109408113A (zh) * | 2018-09-03 | 2019-03-01 | 平安普惠企业管理有限公司 | 一种代码文本处理方法、系统及终端设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050257201A1 (en) * | 2004-05-17 | 2005-11-17 | International Business Machines Corporation | Optimization of XPath expressions for evaluation upon streaming XML data |
-
2021
- 2021-04-09 CN CN202110382646.0A patent/CN113076721B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1826598A (zh) * | 2003-07-21 | 2006-08-30 | 皇家飞利浦电子股份有限公司 | 在文档中搜索的方法 |
CN104484337A (zh) * | 2014-11-19 | 2015-04-01 | 西安电子科技大学 | Xml文档的存储方法 |
CN109241498A (zh) * | 2018-06-26 | 2019-01-18 | 中国建设银行股份有限公司 | Xml文件处理方法、设备和存储介质 |
CN109408113A (zh) * | 2018-09-03 | 2019-03-01 | 平安普惠企业管理有限公司 | 一种代码文本处理方法、系统及终端设备 |
Non-Patent Citations (1)
Title |
---|
XPath结构连接顺序优化;李东;邝子民;;计算机科学与探索(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113076721A (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598574B (zh) | 页面渲染的方法和装置 | |
JP6272417B2 (ja) | 文抽出方法及びシステム | |
CN112800095B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN109543942A (zh) | 数据校验方法、装置、计算机设备和存储介质 | |
CN110276074B (zh) | 自然语言处理的分布式训练方法、装置、设备及存储介质 | |
US11494559B2 (en) | Hybrid in-domain and out-of-domain document processing for non-vocabulary tokens of electronic documents | |
US11481554B2 (en) | Systems and methods for training and evaluating machine learning models using generalized vocabulary tokens for document processing | |
US20210158210A1 (en) | Hybrid in-domain and out-of-domain document processing for non-vocabulary tokens of electronic documents | |
CN109408682A (zh) | 一种正则表达式匹配的方法、系统及设备 | |
CN114035827A (zh) | 应用程序更新方法、装置、设备及存储介质 | |
CN115757054A (zh) | 一种日志记录方法、系统、计算机设备及介质 | |
CN110109867B (zh) | 改进在线模式检测的方法、装置和计算机程序产品 | |
US9166619B2 (en) | Method and system for pattern-based compression | |
CN114356386A (zh) | 一种分块差分升级方法、终端设备和计算机可读存储介质 | |
CN113076721B (zh) | 一种基于XPath的编码长度控制方法以及装置 | |
CN117453784A (zh) | 配置文件转换方法、装置、设备及存储介质 | |
CN113742332A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN115130043B (zh) | 基于数据库的数据处理方法、装置、设备及存储介质 | |
CN113821211B (zh) | 命令解析方法、装置、存储介质和计算机设备 | |
CN104023056B (zh) | 更新数据的方法和相关设备 | |
CN115640376A (zh) | 文本标注方法、装置、电子设备和计算机可读存储介质 | |
CN109840080B (zh) | 字符属性比较方法、装置、存储介质及电子设备 | |
CN109033189B (zh) | 链路结构日志的压缩方法、装置、服务器及可读存储介质 | |
CN113064898A (zh) | 一种基于链上合约微型索引的检索方法、装置和电子设备 | |
CN111078337A (zh) | 样式调整方法、系统及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |