CN113821210A - 一种文件解析方法、装置及存储介质 - Google Patents
一种文件解析方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113821210A CN113821210A CN202111091392.3A CN202111091392A CN113821210A CN 113821210 A CN113821210 A CN 113821210A CN 202111091392 A CN202111091392 A CN 202111091392A CN 113821210 A CN113821210 A CN 113821210A
- Authority
- CN
- China
- Prior art keywords
- rule
- node
- file
- information
- xml file
- 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.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 10
- 230000003068 static effect Effects 0.000 abstract description 20
- 238000007689 inspection Methods 0.000 abstract description 13
- 230000008140 language development Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 13
- 230000003321 amplification Effects 0.000 description 11
- 238000003199 nucleic acid amplification method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种文件解析方法、装置及存储介质。文件解析方法包括:获取目标规则文件;确定目标规则文件的文件概述信息、规则概述信息和规则内容信息;根据文件概述信息、规则概述信息和规则内容信息创建XML文件,XML文件包括根节点、规则概述节点和规则内容节点,规则概述节点为根节点的子节点,规则内容节点为规则概述节点的子节点;对XML文件进行解析,得到目标规则代码信息。先根据目标规则文件创建得到容易解析的XML文件,再对XML文件进行解析得到目标规则代码信息,目标规则代码信息是目标规则文件对应的代码形式信息,目标规则代码信息可用于程序静态检查,解决了在程序静态检查时难以得到语言开发标准文件对应的代码信息的技术问题。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种文件解析方法、装置及存储介质。
背景技术
程序静态检查是在不运行代码的方式下,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。
MISRA C是由汽车产业软件可靠性协会(MISRA)提出的C语言开发标准,包含了一系列对C语言静态检查的规则描述,是供人阅读的非结构化文档。程序静态检查中,需要根据MISRA C的规则对C源程序进行检查,输出结果供程序开发人员修改完善C程序源码,使C源码最终达到MISRA C的规则要求。
由于MISRA C是非结构化文档,因此需要根据非结构化的MISRA C得到可用于程序静态检查的代码信息,现有的处理过程非常复杂且得到的代码信息不准确。
发明内容
有鉴于此,本申请提出了一种文件解析方法、装置及存储介质,至少可以解决现有技术中难以得到语言开发标准文件对应的代码信息的技术问题。
根据本申请的一方面,提供了一种文件解析方法,包括:
获取目标规则文件;
确定所述目标规则文件的文件概述信息、规则概述信息和规则内容信息;
根据所述文件概述信息、所述规则概述信息和所述规则内容信息创建XML文件,所述XML文件包括根节点、规则概述节点和规则内容节点,所述规则概述节点为所述根节点的子节点,所述规则内容节点为所述规则概述节点的子节点;
对所述XML文件进行解析,得到目标规则代码信息。
在一种可能的实现方式中,所述根据所述文件概述信息、所述规则概述信息和所述规则内容信息,创建XML文件包括:
根据所述文件概述信息确定所述XML文件的根节点的属性信息;
根据所述规则概述信息确定所述XML文件的规则概述节点的属性信息;
根据所述规则内容信息确定所述XML文件的规则内容节点的属性信息。
在一种可能的实现方式中,所述根节点的属性信息包括文件类型信息和文件版本信息。
在一种可能的实现方式中,所述规则概述节点的属性信息包括规则编号信息、规则概述信息和规则等级信息。
在一种可能的实现方式中,所述根节点包括多个所述规则概述节点。
在一种可能的实现方式中,所述规则内容节点的类型包括分析节点类型、应用节点类型、扩展节点类型、原理节点类型、异常节点类型、示例节点类型和参考节点类型。
在一种可能的实现方式中,所述对所述XML文件进行解析,得到目标规则代码信息包括:
对所述XML文件的所述根节点、所述规则概述节点和所述规则内容节点进行解析,得到所述目标规则代码信息。
在一种可能的实现方式中,所述目标规则文件的格式为DOC格式或者PDF格式。
根据本申请的另一方面,提供了一种文件解析装置,包括:
获取模块,用于获取目标规则文件;
第一确定模块,用于确定所述目标规则文件的文件概述信息、规则概述信息和规则内容信息;
第二确定模块,用于根据所述文件概述信息、所述规则概述信息和所述规则内容信息创建XML文件,所述XML文件包括根节点、规则概述节点和规则内容节点,所述规则概述节点为所述根节点的子节点,所述规则内容节点为所述规则概述节点的子节点;
解析模块,用于对所述XML文件进行解析,得到目标规则代码信息。
根据本申请的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
本发明中,先根据目标规则文件创建得到容易解析的XML文件,再根据XML文件的结构对XML文件进行解析得到目标规则代码信息,目标规则代码信息是目标规则文件对应的代码形式信息,目标规则代码信息可用于程序静态检查,解决了在程序静态检查时难以得到语言开发标准文件对应的代码信息的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据一示例性实施例示出的一种文件解析方法的流程示意图;
图2为根据另一示例性实施例示出的一种文件解析方法的流程示意图;
图3为根据一示例性实施例示出的一种文件解析装置的框图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
本发明提出了一种文件解析方法、装置及存储介质,至少可以解决现有技术中难以得到MISRA C对应的代码信息的技术问题。
结合图1至图2所示,本说明书实施例提供的一种文件解析方法包括以下内容。
步骤S101:获取目标规则文件。
本说明书实施例中的目标规则文件可以是行业标准文件,可以是由汽车产业软件可靠性协会(MISRA)提出的C语言开发标准(MISRA C)。
步骤S102:确定目标规则文件的文件概述信息、规则概述信息和规则内容信息。
本说明书实施例中,文件概述信息可以表征文件的类型,规则概述信息可以表征规则的概述内容,规则内容信息可以表征规则的具体内容。可以从目标规则文件所记载的内容中确定文件概述信息、规则概述信息和规则内容信息。
步骤S103:根据文件概述信息、规则概述信息和规则内容信息创建XML文件,XML文件包括根节点、规则概述节点和规则内容节点,规则概述节点为根节点的子节点,规则内容节点为规则概述节点的子节点。
XML是一种可扩展标记语言。本说明书实施例中,可以根据文件概述信息、规则概述信息和规则内容信息分别对应至XML文件的根节点、规则概述节点和规则内容节点。
步骤S104:对XML文件进行解析,得到目标规则代码信息。
本说明书实施例中,可以根据目标规则文件得到对应的XML文件,再根据XML文件的结构对XML文件进行解析,可以得到目标规则代码信息,目标规则代码信息可以与目标规则文件所记载的内容相对应。目标规则代码信息可以用于程序静态检查。
本说明书实施例中,先根据目标规则文件创建得到容易解析的XML文件,再根据XML文件的结构对XML文件进行解析得到目标规则代码信息,目标规则代码信息是目标规则文件对应的代码形式信息,目标规则代码信息可用于程序静态检查,解决了在程序静态检查时难以得到MISRAC等语言开发标准文件对应的代码信息的技术问题。
本说明书实施例中的XML文件可以用于表示MISRAC的规则,方便静态检查程序读取MISRAC的规则,便于在程序静态检查时以MISRA C单条规则为单位进行处理。结构化格式XML相比doc/pdf等非结构化文件格式,XML格式的文件可以准确表示MISRAC所有的静态检查规则,容易修改、扩展,方便增减规则来定制新规范。
在一种可能的实现方式中,步骤S103包括:
步骤S1031:根据文件概述信息确定XML文件的根节点的属性信息;
步骤S1032:根据规则概述信息确定XML文件的规则概述节点的属性信息;
步骤S1033:根据规则内容信息确定XML文件的规则内容节点的属性信息。
本说明书实施例中,可以根据文件概述信息确定根节点的属性信息,将根节点的属性信息写入XML文件的根节点;可以根据规则概述信息确定规则概述节点的属性信息,将规则概述节点的属性信息写入XML文件的规则概述节点;可以根据规则内容信息确定规则内容节点的属性信息,将规则内容节点的属性信息写入XML文件的规则内容节点。本说明书实施例中的XML文件的结构简单、容易解析,创建XML文件的过程简单且高效。
在一种可能的实现方式中,根节点的属性信息包括文件类型信息和文件版本信息。
本说明书实施例中根节点的属性信息可以体现文件类型信息和文件版本信息,便于快速解析并及时获知文件类型信息和文件版本信息。
本说明书实施例中可以记根节点为RULES,根节点的属性可以包括文件类型type和文件版本version。
如果文件类型type=“MISRAC”,则文件版本version可以取值为1998、2004、2012等MISRAC对应的版本号,XML文件中的对应代码可以为:<RULES type=“MISRAC”version=“2012”>...</RULES>。
如果文件类型type=“[自定义类型]”,则文件版本version可以取值为:[自定义类型的版本号],XML文件中的对应代码可以为:<RULES type=“部门C语言规范”version=“v1.0”>...</RULES>。
在一种可能的实现方式中,规则概述节点的属性信息包括规则编号信息、规则概述信息和规则等级信息。
本说明书实施例中概述节点的属性信息可以体现规则编号信息、规则概述信息和规则等级信息,便于快速解析并及时获知规则编号信息、规则概述信息和规则等级信息。
本说明书实施例中可以记规则概述节点为RULE,规则概述节点的属性可以包括规则编号id、规则概述summary和规则等级category。
如果文件类型type=“MISRAC”,则规则编号id可以取值为对应的规则编号:1.3,2.1等,XML文件中的对应代码可以为:<RULE id=“1.1”>...</RULE>。
如果文件类型type=“[自定义类型]”,则规则编号id可以取值为[自定义类型的规则编号],XML文件中的对应代码可以为:<RULE id=“123”>...</RULE>。
规则概述summary可以取值为[对规则的简要说明],XML文件中的对应代码可以为:<RULE id=“2.1”summary=“A project shall not contain unreachable code”>...</RULE>。
规则等级category可以取值为mandatory、required或者advisory。mandatory、required、advisory的强制性由高至低。其中,mandatory可以表示规则等级为较高强制级别,required可以表示规则等级为较高需求级别,advisory可以表示规则等级为建议级别。XML文件中的对应代码可以为:
<RULE id=“2.1”summary=“Aproject shall not contain unreachable code”category=“mandatory”>...</RULE>
<RULE id=“2.2”summary=“Aproject shall not contain unreachable code”category=“required”>...</RULE>
<RULE id=“2.3”summary=“Aproject shall not contain unreachable code”category=“advisory”>...</RULE>。
在一种可能的实现方式中,根节点包括多个规则概述节点。
本说明书实施例中,规则概述节点的数量可以对应于目标规则文件中规则的数量,使XML文件与目标规则文件相对应,确保XML文件解析后的准确性。多个规则概述节点与目标规则文件中的多条规则一一对应。
在一种可能的实现方式中,规则内容节点的类型包括分析节点类型、应用节点类型、扩展节点类型、原理节点类型、异常节点类型、示例节点类型和参考节点类型。
本说明书实施例中,一个规则概述节点可以包括一个或多个规则内容节点,一个规则概述节点可以包括分析节点、应用节点、扩展节点、原理节点、异常节点、示例节点和参考节点中的一个或多个。
本说明书实施例中规则内容节点的属性信息可以体现应用信息、扩展信息、原理信息、示例信息和参考信息。
本说明书实施例中可以记分析节点为Analysis,可以记应用节点为AppliesTo,可以记扩展节点为Amplification,可以记原理节点为Rationle,可以记异常节点为Exception,可以记示例节点为Example,可以记参考节点为SeeAlso。
本说明书实施例中规则概述节点的类型可以根据MISRA C文件中的规则内容类型进行确定。例如,在MISRA C的第1.1条规则中,设有Analysis、AppliesTo、Amplification、Rationle、Example和SeeAlso;则XML文件中,MISRAC的第1.1条规则对应的规则概述节点,可以包括分析节点Analysis、应用节点AppliesTo、扩展节点Amplification、原理节点Rationle、示例节点Example和参考节点为SeeAlso。
本说明书实施例中,分析节点Analysis的属性可以包括可判定性decidability和范围scope。可判定性decidability的取值可以为decidable或undecidable;范围scope的取值可以为“Single Translation Unit”或“System”。XML文件中的对应代码可以为:<Analysis decidability=“Decidable”scope=“Single Translation Unit”/>,或者<Analysis decidability=“Undecidable”scope=“System”/>。
应用节点AppliesTo的属性可以包括属性c90和属性c99。属性c90的取值可以为true或false;属性c99的取值可以为true或false。XML文件中的对应代码可以为:<AppliesTo c90=“true”c99=“false”/>,或者<AppliesTo c90=“false”c99=“true”/>。
扩展节点为Amplification的属性可以包括扩展说明CDATA。扩展说明CDATA的取值可以为对c90和c99的扩展说明。XML文件中的对应代码可以为:
<Amplification>
<![CDATA[
This rule requires that different“external identifiers”be distinctwithin the limites imposedbythe implementation.
The definition of distinct depends on the implementabtion and on theversion ofthe C language the is being used:
In C90 the minimum requirement is that the first 6characters of“external identifiers”are significantbuttheir case is notrequired to besignification.
In C99 the minimum requirement is that the first 31characters of“external idenfifiers”are significant,with each universal character orcorresponding extended source character occupyingbetween 6and 10characters.
]]>
</Amplification>
原理节点Rationle的属性可以包括原理说明CDATA。原理说明CDATA的取值可以为对父元素RULE的原理说明。XML文件中的对应代码可以为:
<Rationle>
<![CDATA[
Iftwo identifiers differ only in non-significant characters,thebehaviour is undefined.
Ifportability is a concern,it would be prudent to apply this ruleusing the minimum limits specified in The Standard.
Long identifiers may impair the readability ofcode.While manyautomatic code generation systems produce long identifiers,there is a goodargument for keeping idendifier lengths wellbelow this limit.
]]>
</Rationle>
异常节点Exception的属性可以包括异常情况说明CDATA。异常情况说明CDATA的取值可以为对异常情况的说明。XML文件中的对应代码可以为:
<Exception>
<![CDATA[
The tag name may be the same as the“typedef”with which it isassociated.
]]>
</Exception>
示例节点Example的属性可以包括示例说明CDATA。示例说明CDATA的取值可以为对父元素RULE的C源码例子说明。XML文件中的对应代码可以为:
参考节点SeeAlso可以包括一个或多个参考子节点,参考子节点的属性可以为属性id或属性class。例如,参考子节点refer的属性id可以取值[参考规则的id],参考子节点refer的属性class可以取值Dir,Rule。XML文件中的对应代码可以为:
<SeeAlso>
<refer class=“Dir”id=“5.2”/>
<refer class=“Rule”id=“3.4”/>
</SeeAlso>
有的XML元素的文本内容很多很杂,比如“Amplification”元素,内容会有多行而且可能包含各种特殊字符(比如"<",">",回车、换行等),如果不处理好这些回车换行和特殊字符,那么解析XML文件就会出错,所以本说明书实施例中对所有XML元素的文本内容统一按CDATA区段数据来存取,对应XML文件中的表示就是<XML元素><![CDATA[【多行复杂的文本内容】]]></XML元素>,<XML元素>,如果解析到发现是CDATA区段(CDATAsection)中的文本那么就原样保留。XML元素内只包含文本内容,或者只包含其它子元素;但XML元素内不能同时既包含文本内容也包含其它子元素,这是不允许的。由此,本说明书实施例中的XML文件在解析不容易出错。
在一种可能的实现方式中,步骤S104包括步骤S1041:对XML文件的根节点、规则概述节点和规则内容节点进行解析,得到目标规则代码信息。
本说明书实施例中,可以根据XML文件的结构读取XML文件。解析XML文件的整体流程如下:解析得到RULES元素对象,获取RULES元素对象,调用getAttribute接口获取RULES元素的type属性信息,调用getAttribute接口获取RULES元素的version属性信息,调用getChildNodes接口解析得到RULES元素的子节点列表,依次取子节点列表中每个子节点,如果子节点是RULE元素则解析RULE元素,返回依次取子节点列表中每个子节点直至子节点列表遍历完成;如果子节点不是RULE元素则返回依次取子节点列表中每个子节点。
解析RULE元素的流程如下:调用getAttribute接口获取RULE元素的id属性信息,调用getAttribute接口获取RULE元素的summary属性信息,调用getAttribute接口获取RULE元素的categary属性信息,调用getChildNodes接口解析得到RULE元素的子节点列表,依次取子节点列表中每一个子节点,如果子节点是分析节点Analysis则解析分析节点Analysis的元素信息,如果子节点是应用节点AppliesTo则解析应用节点AppliesTo的元素信息,如果子节点是扩展节点Amplification则解析扩展节点Amplification的元素信息,如果子节点是原理节点Rationle则解析原理节点Rationle的元素信息,如果子节点是异常节点Exception则解析异常节点Exception的元素信息,如果子节点是示例节点Example则解析示例节点Example的元素信息,如果子节点是参考节点SeeAlso则解析参考节点SeeAlso的元素信息,直至RULE元素下的子节点列表遍历完成。
解析分析节点Analysis时,可以调用getAttribute接口获取Analysis元素的decidability属性信息,调用getAttribute接口获取Analysis元素的scope属性信息。
解析应用节点AppliesTo时,可以调用getAttribute接口获取AppliesTo元素的c90属性信息,调用getAttribute接口获取AppliesTo元素的c99属性信息。
解析扩展节点Amplification时,可以调用getTextContent接口获取Amplification元素的CDATA属性信息。
解析原理节点Rationle时,可以调用getTextContent接口获取Rationle元素的CDATA属性信息。
解析异常节点Exception时,可以调用getTextContent接口获取Exception元素的CDATA属性信息。
解析示例节点Example时,可以调用getTextContent接口获取Example元素的CDATA属性信息。
解析参考节点SeeAlso时,可以依次获取参考节点SeeAlso下的子节点列表中的每一个子节点,如果子节点是refer则可以调用getAttribute接口获取refer元素的id属性信息,调用getAttribute接口获取refer元素的class属性信息,直至参考节点SeeAlso下的子节点列表遍历完成。
在一种可能的实现方式中,目标规则文件的格式为DOC格式或者PDF格式。本说明书实施例中的目标规则文件可以为MISRAC文件。
结合图3所示,本说明书实施例还提供一种文件解析装置包括:
获取模块10,用于获取目标规则文件;
第一确定模块20,用于确定目标规则文件的文件概述信息、规则概述信息和规则内容信息;
第二确定模块30,用于根据文件概述信息、规则概述信息和规则内容信息创建XML文件,XML文件包括根节点、规则概述节点和规则内容节点,规则概述节点为根节点的子节点,规则内容节点为规则概述节点的子节点;
解析模块40,用于对XML文件进行解析,得到目标规则代码信息。
本说明书实施例中,先根据目标规则文件创建得到容易解析的XML文件,再根据XML文件的结构对XML文件进行解析得到目标规则代码信息,得到目标规则文件对应的代码形式信息,便于程序静态检查,解决了在程序静态检查时难以难以得到MISRAC等语言开发标准对应的代码信息的技术问题。
本说明书实施例中的XML文件用于表示MISRAC的规则,方便静态检查程序读取MISRAC的规则,便于在程序静态检查时以MISRAC单条规则为单位进行处理。结构化格式XML相比doc/pdf等非结构化文件格式,XML格式的文件可以准确表示MISRAC所有的静态检查规则,容易修改、扩展,方便增减规则来定制新规范。
在一种可能的实现方式中,第二确定模块包括:
第一确定单元,用于根据文件概述信息确定XML文件的根节点的属性信息;
第二确定单元,用于根据规则概述信息确定XML文件的规则概述节点的属性信息;
第三确定单元,用于根据规则内容信息确定XML文件的规则内容节点的属性信息。
在一种可能的实现方式中,根节点的属性信息包括文件类型信息和文件版本信息。
在一种可能的实现方式中,规则概述节点的属性信息包括规则编号信息、规则概述信息和规则等级信息。
在一种可能的实现方式中,根节点包括多个规则概述节点。
在一种可能的实现方式中,规则内容节点的类型包括分析节点类型、应用节点类型、扩展节点类型、原理节点类型、异常节点类型、示例节点类型和参考节点类型。
在一种可能的实现方式中,解析模块包括解析单元,解析单元用于对XML文件的根节点、规则概述节点和规则内容节点进行解析,得到目标规则代码信息。
在一种可能的实现方式中,目标规则文件的格式为DOC格式或者PDF格式。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
此外,本说明书实施例还提供一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述文件解析方法。
计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本申请的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种文件解析方法,其特征在于,包括:
获取目标规则文件;
确定所述目标规则文件的文件概述信息、规则概述信息和规则内容信息;
根据所述文件概述信息、所述规则概述信息和所述规则内容信息创建XML文件,所述XML文件包括根节点、规则概述节点和规则内容节点,所述规则概述节点为所述根节点的子节点,所述规则内容节点为所述规则概述节点的子节点;
对所述XML文件进行解析,得到目标规则代码信息。
2.如权利要求1所述的文件解析方法,其特征在于,所述根据所述文件概述信息、所述规则概述信息和所述规则内容信息,创建XML文件包括:
根据所述文件概述信息确定所述XML文件的根节点的属性信息;
根据所述规则概述信息确定所述XML文件的规则概述节点的属性信息;
根据所述规则内容信息确定所述XML文件的规则内容节点的属性信息。
3.如权利要求2所述的文件解析方法,其特征在于,所述根节点的属性信息包括文件类型信息和文件版本信息。
4.如权利要求2或3所述的文件解析方法,其特征在于,所述规则概述节点的属性信息包括规则编号信息、规则概述信息和规则等级信息。
5.如权利要求1所述的文件解析方法,其特征在于,所述根节点包括多个所述规则概述节点。
6.如权利要求1所述的文件解析方法,其特征在于,所述规则内容节点的类型包括分析节点类型、应用节点类型、扩展节点类型、原理节点类型、异常节点类型、示例节点类型和参考节点类型。
7.如权利要求1所述的文件解析方法,其特征在于,所述对所述XML文件进行解析,得到目标规则代码信息包括:
对所述XML文件的所述根节点、所述规则概述节点和所述规则内容节点进行解析,得到所述目标规则代码信息。
8.如权利要求1所述的文件解析方法,其特征在于,所述目标规则文件的格式为DOC格式或者PDF格式。
9.一种文件解析装置,其特征在于,包括:
获取模块,用于获取目标规则文件;
第一确定模块,用于确定所述目标规则文件的文件概述信息、规则概述信息和规则内容信息;
第二确定模块,用于根据所述文件概述信息、所述规则概述信息和所述规则内容信息创建XML文件,所述XML文件包括根节点、规则概述节点和规则内容节点,所述规则概述节点为所述根节点的子节点,所述规则内容节点为所述规则概述节点的子节点;
解析模块,用于对所述XML文件进行解析,得到目标规则代码信息。
10.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至8中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111091392.3A CN113821210B (zh) | 2021-09-17 | 2021-09-17 | 一种文件解析方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111091392.3A CN113821210B (zh) | 2021-09-17 | 2021-09-17 | 一种文件解析方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113821210A true CN113821210A (zh) | 2021-12-21 |
CN113821210B CN113821210B (zh) | 2024-06-25 |
Family
ID=78922244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111091392.3A Active CN113821210B (zh) | 2021-09-17 | 2021-09-17 | 一种文件解析方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113821210B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279792A (zh) * | 2011-07-25 | 2011-12-14 | 大连理工大学 | 基于xml中间模型安全检测规则库的建立方法 |
CN105022619A (zh) * | 2014-04-25 | 2015-11-04 | 无锡物联网产业研究院 | 一种代码数据处理方法及装置 |
CN108255494A (zh) * | 2018-01-30 | 2018-07-06 | 平安科技(深圳)有限公司 | 一种xml文件解析方法、装置、计算机设备及存储介质 |
CN108984174A (zh) * | 2018-07-03 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | 跨平台的应用创建方法、装置、服务器和存储介质 |
US20190392329A1 (en) * | 2018-06-25 | 2019-12-26 | Tata Consultancy Services Limited | Automated extraction of rules embedded in software application code using machine learning |
CN110750459A (zh) * | 2019-10-23 | 2020-02-04 | 天津汇缘诚信科技有限公司 | 基于白盒分析的测试用例自动生成和测试进程管理方法 |
CN112182305A (zh) * | 2020-09-26 | 2021-01-05 | 广州鲁邦通物联网科技有限公司 | 一种基于xml规则的xml解析模块、解析方法和配置数据的管理方法 |
-
2021
- 2021-09-17 CN CN202111091392.3A patent/CN113821210B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279792A (zh) * | 2011-07-25 | 2011-12-14 | 大连理工大学 | 基于xml中间模型安全检测规则库的建立方法 |
CN105022619A (zh) * | 2014-04-25 | 2015-11-04 | 无锡物联网产业研究院 | 一种代码数据处理方法及装置 |
CN108255494A (zh) * | 2018-01-30 | 2018-07-06 | 平安科技(深圳)有限公司 | 一种xml文件解析方法、装置、计算机设备及存储介质 |
US20190392329A1 (en) * | 2018-06-25 | 2019-12-26 | Tata Consultancy Services Limited | Automated extraction of rules embedded in software application code using machine learning |
CN108984174A (zh) * | 2018-07-03 | 2018-12-11 | 百度在线网络技术(北京)有限公司 | 跨平台的应用创建方法、装置、服务器和存储介质 |
CN110750459A (zh) * | 2019-10-23 | 2020-02-04 | 天津汇缘诚信科技有限公司 | 基于白盒分析的测试用例自动生成和测试进程管理方法 |
CN112182305A (zh) * | 2020-09-26 | 2021-01-05 | 广州鲁邦通物联网科技有限公司 | 一种基于xml规则的xml解析模块、解析方法和配置数据的管理方法 |
Non-Patent Citations (3)
Title |
---|
HONGBO ZHENG 等: "Research on XML Based Static Software Security Analysis", 《2010 SECOND WRI WORLD CONGRESS ON SOFTWARE ENGINEERING》, pages 1 - 4 * |
XIAOCHEN LAI 等: "A Method of Software Defects Mining Based on Static Analysis*", 《SPRINGER》, pages 794 * |
廖丹: "基于MISRA标准的通用C语言自动化检测工具", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 138 - 656 * |
Also Published As
Publication number | Publication date |
---|---|
CN113821210B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109814866B (zh) | 页面应用转化为原生应用的处理方法和装置 | |
US20150169320A1 (en) | Verification of backward compatibility of software components | |
CN110489087B (zh) | 一种生成分形结构的方法、装置、介质和电子设备 | |
US10019426B2 (en) | Generating data format description language schema | |
CN112015430A (zh) | JavaScript代码翻译方法、装置、计算机设备及存储介质 | |
US20180203844A1 (en) | Detection of meaningful changes in content | |
US9417991B2 (en) | Translation verification testing | |
US10255046B2 (en) | Source code analysis and adjustment system | |
CN111159220A (zh) | 用于输出结构化查询语句的方法和装置 | |
US11994980B2 (en) | Method, device and computer program product for application testing | |
CN112286784B (zh) | 一种测试用例生成方法、装置、服务器及存储介质 | |
CN111984262A (zh) | 微信层叠样式表文件的处理方法、装置、设备及存储介质 | |
CN111124541A (zh) | 一种配置文件的生成方法、装置、设备及介质 | |
CN113760721A (zh) | 一种页面测试方法和装置 | |
CN113821210A (zh) | 一种文件解析方法、装置及存储介质 | |
CN115357286B (zh) | 一种程序文件对比方法、装置、电子设备及存储介质 | |
CN113377648B (zh) | 软件***诊断方法、装置、电子设备及计算机可读介质 | |
CN114691527A (zh) | 单元测试案例生成方法、装置、设备、介质和程序产品 | |
CN113807056A (zh) | 一种文档名称序号纠错方法、装置和设备 | |
CN113760698A (zh) | 一种测试用例文件数据的转换方法和装置 | |
CN110737431A (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
CN113742225B (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN116069633B (zh) | 代码的检验方法、装置、电子设备及存储介质 | |
CN113704020B (zh) | 固态硬盘的出错现场数据的解析方法以及装置 | |
CN111562909B (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 |