CN112181924A - 文件转换方法、装置、设备及介质 - Google Patents
文件转换方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112181924A CN112181924A CN202011036240.9A CN202011036240A CN112181924A CN 112181924 A CN112181924 A CN 112181924A CN 202011036240 A CN202011036240 A CN 202011036240A CN 112181924 A CN112181924 A CN 112181924A
- Authority
- CN
- China
- Prior art keywords
- pointer
- node
- node type
- file
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 44
- 230000006870 function Effects 0.000 claims description 90
- 238000004590 computer program Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000003745 diagnosis Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000003550 marker Substances 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
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
- G06F16/1794—Details of file format conversion
-
- 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/51—Source to source
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于计算机技术领域,提供了文件转换方法,包括:对源格式文件进行解析,得到源格式文件的节点和节点的节点类型;从预先存储的关联信息集中查找与节点类型对应的指针创建函数,以通过指针创建函数所创建的指针访问节点的数据,实现将源格式文件转换成目标格式文件。本申请通过从预先存储的关联信息集中查找节点类型所在的关联信息,得到与节点类型关联的指针创建函数,可以实现快速地得到指针创建函数,从而实现快速地创建用于访问节点的数据的指针,有助于提高将源格式文件转换成目标格式文件的文件转换效率。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种文件转换方法、装置、设备及介质。
背景技术
开放测试序列交换(open test sequence exchange,otx)语言是一种应用于汽车诊断领域的高级程序设计语言,其完整的语法语义以及程序结构定义主要由ISO13209系列标准给出。其中,ISO13209-1标准主要包括otx的总论和用例;ISO13209-2标准主要包括otx的核心数据模型规范和要求;ISO13209-3标准主要包括otx的标准扩展和要求。
相关技术中,通常需要将由otx语言编写的程序文件(otx文件)转换成C++文件。这样,可以实现将所得到的C++文件编译成具有车辆诊断功能的可执行文件。相关技术中,需要提高将otx文件转换成C++文件的文件转换效率。
发明内容
本申请实施例提供了文件转换方法、装置、设备及介质。
第一方面,本申请实施例提供了一种文件转换方法,该方法包括:
对源格式文件进行解析,得到源格式文件的节点和节点的节点类型;
从预先存储的关联信息集中查找节点类型所在的关联信息,得到与节点类型关联的指针创建函数,以通过指针创建函数所创建的指针访问节点的数据,实现将源格式文件转换成目标格式文件。
进一步地,关联信息集通过如下步骤得到:
遍历节点类型集合中的节点类型,并在访问当前节点类型时,执行如下存储步骤:生成用于创建与当前节点类型匹配的指针的指针创建函数,以及将当前节点类型与所生成的指针创建函数关联存储至关联信息集中。
进一步地,指针创建函数所创建的指针为指向存储节点的数据的存储地址的指针。
进一步地,通过指针创建函数所创建的指针访问节点的数据,包括:
从指针所指向的存储地址,获取节点的数据。
第二方面,本申请实施例提供了一种文件转换装置,该装置包括:
文件解析单元,用于对源格式文件进行解析,得到源格式文件的节点和节点的节点类型;
格式转换单元,用于从预先存储的关联信息集中查找节点类型所在的关联信息,得到与节点类型关联的指针创建函数,以通过指针创建函数所创建的指针访问节点的数据,实现将源格式文件转换成目标格式文件。
进一步地,关联信息集通过如下步骤得到:
遍历节点类型集合中的节点类型,并在访问当前节点类型时,执行如下存储步骤:生成用于创建与当前节点类型匹配的指针的指针创建函数,以及将当前节点类型与所生成的指针创建函数关联存储至关联信息集中。
进一步地,指针创建函数所创建的指针为指向存储节点的数据的存储地址的指针。
进一步地,通过指针创建函数所创建的指针访问节点的数据,包括:
从指针所指向的存储地址,获取节点的数据。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述文件转换方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现上述文件转换方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项的文件转换方法。
本申请实施例与相关技术相比存在的有益效果是:相关技术中,通常是通过大量条件语句确定所需创建的指针的类型,然后创建该类型的指针。与相关技术相比,本申请通过从预先存储的关联信息集中查找节点类型所在的关联信息,得到与节点类型关联的指针创建函数,可以实现快速地得到指针创建函数,从而实现快速地创建用于访问节点的数据的指针,有助于提高将源格式文件转换成目标格式文件的文件转换效率。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的文件转换方法的流程示意图;
图2是本申请一实施例提供的部分otx文件的示意图;
图3是本申请另一实施例提供的文件转换方法的流程示意图;
图4是本申请一实施例提供的文件转换装置的结构示意图;
图5是本申请一实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
为了说明本申请的技术方案,下面通过以下实施例来进行说明。
参考图1,为本申请实施例提供的一种文件转换方法的流程示意图,如图1所示的文件转换方法,包括:
步骤101,对源格式文件进行解析,得到源格式文件的节点和节点的节点类型。
其中,上述源格式文件通常为可扩展标记语言(eXtensible Markup Language,XML)格式的otx文件。XML格式是纯文本格式,每个XML元素可以称之为一个节点。每个节点通常包括一个起始标记(<title>)、一个结束标记(</title>)和两个标记之间的内容。在形式上,标记中可能包括注释、引用、字符数据段、起始标记、结束标记、空元素、文档类型声明和序言等。
在本实施例中,上述文件转换方法的执行主体可以为各种设备,如,车辆诊断设备。需要指出的是,上述执行主体也可以为智能手机、平板电脑、膝上型便携计算机和台式计算机等设备。
这里,由于源格式文件为XML格式的otx文件,XML格式的文件通常具有特定的格式,且XML格式的文件由若干个节点组成。因此,上述执行主体可以采用针对XML格式的文件解析方式对源格式文件进行解析,得到源格式文件的每一个节点以及节点的节点类型。
在本实施例中,在对源格式文件进行解析的过程中,上述执行主体可以解析得到节点,以及得到节点的节点类型。
图2为本申请实施例提供的部分otx文件的示意图。如图2所示地,第一行的<diag:requestParameters>为diag:requestParameters节点的起始标记,以及最后一行的</diag:requestParameters>为该diag:requestParameters节点的结束标记。diag:requestParameters节点为参数集。
第2-7行,diag:requestParameter节点为参数集中的一个参数。
第3行中,value=“DIDF004_EOL_learn_gear_RCT_STRUCT”表示该参数节点的值为DIDF004_EOL_learn_gear_RCT_STRUCT。xsi:type=“StringLiteral”表示该参数节点的值的类型为StringLiteral。即,该参数节点的节点类型为StringLiteral,即,字符串类型。
第5行中,value=“RoutineIdentifier”表示该参数节点下的存储路径节点的值为RoutineIdentifier。其中,存储路径节点为该参数节点的子节点。xsi:type=“ns:StringLiteral”表示该存储路径节点的节点类型为字符串类型。xmlns:ns=http://iso.org/OTX/1.0.0,指的是用别名ns表示域名http://iso.org/OTX/1.0.0。其中,域名http://iso.org/OTX/1.0.0是发布otx标准的网址。语句xmlns:ns=http://iso.org/OTX/1.0.0的作用是:这个节点以及这个节点的子节点内可以使用otx标准中定义的节点类型。比如ns:StringLiteral中,就是使用了ns中定义的StringLiteral类型的数据。
第8-15,diag:requestParameter节点为参数集中的另一个参数。该节点中各语句的含义与针对第2-7行中的各语句的含义相类似,这里不做赘述。
如图2所示地,在对源格式文件进行解析的过程中,上述执行主体可以解析得到节点,以及得到节点的包括节点类型的属性信息。其中,属性信息可以包括但不限于节点类型、节点的值等。
步骤102,从预先存储的关联信息集中查找节点类型所在的关联信息,得到与节点类型关联的指针创建函数,以通过指针创建函数所创建的指针访问节点的数据,实现将源格式文件转换成目标格式文件。
其中,指针创建函数通常是用于创建指针的函数。
实际应用中,指针创建函数通常为Lambda表达式(lambda expression)。Lambda表达式是一个匿名函数,即,没有函数名的函数。
作为一个示例,指针创建函数可以为:return new OtxStringLiteral(),该指针创建函数可以返回OtxStringLiteral类型的指针,即,创建OtxStringLiteral类型的指针。实际应用中,在得到指针创建函数返回的指针时,为了便于不同类型数据间的访问,上述执行主体通常会采用基类指针保存指针创建函数返回的指针。进一步举例来说,可以通过如下操作实现保存指针创建函数返回的指针:OtxBase*{return new OtxStringLiteral();}。为了便于描述,可以将{return new OtxStringLiteral();}记作p,此时,上述语句可以记作OtxBase*p。其中,OtxBase为基类,*用于标识指针,OtxBase*p表示p为基类指针,此时,p保存了上述指针创建函数返回的指针。实际应用中,为了加快对指针的创建效率,指针创建函数也可以为:OtxBase*{return new OtxStringLiteral();}。
其中,关联信息集中的关联信息用于描述节点类型与指针创建函数之间的关联关系。实践中,关联信息集中的每个关联信息用于描述一个节点类型与一个指针创建函数之间的关联关系。一个节点类型通常关联有一个指针创建函数。
实际应用中,关联信息集通常实现成map。其中,map是一种以键值对方式对数据进行存储的数据结构。这里,可以将节点类型作为键(或者称为key),以及将指针创建函数作为值(或者称为value)。
作为示例,关联信息集中的一条关联信息可以为:
<StringLiteral,OtxBase*{return new OtxStringLiteral();>。
其中,key为StringLiteral,value为OtxBase*{return new OtxStringLiteral();}。
StringLiteral为节点类型,OtxBase*{return new OtxStringLiteral();}为与节点类型关联的指针创建函数。
其中,目标格式文件通常为C++文件。
在本实施例中,上述执行主体可以采用所得到的节点类型从关联信息集中查找该节点类型所在的关联信息,从而得到与该节点类型关联的指针创建函数。从而通过执行所得到的指针创建函数创建指针,以实现通过所创建的指针来访问节点的数据。需要指出的是,通过指针访问数据,是C++语言中常用的数据访问方式。更快地创建用于访问节点的数据的指针,可以实现更快地将otx文件转换成C++文件,从而提高将源格式文件转换成目标格式文件的文件转换效率。
本申请实施例提供的方法,通过从预先存储的关联信息集中查找节点类型所在的关联信息,得到与节点类型关联的指针创建函数,可以实现快速地得到指针创建函数,从而实现快速地创建用于访问节点的数据的指针,有助于提高将源格式文件转换成目标格式文件的文件转换效率。
在本实施例的一些可选的实现方式中,关联信息集通过如下步骤得到:
遍历节点类型集合中的节点类型,并在访问当前节点类型时,执行如下存储步骤:生成用于创建与当前节点类型匹配的指针的指针创建函数,以及将当前节点类型与所生成的指针创建函数关联存储至关联信息集中。
其中,上述节点类型集合,通常是通过统计多个otx文件得到的所有的节点类型的集合。实际应用中,otx文件可能使用到的节点类型有400多个。作为一个示例,若所统计到的节点类型总共有430种,则此时节点类型集合可以包括430个集合元素,一个集合元素表示一种节点类型。
其中,上述生成用于创建与当前节点类型匹配的指针的指针创建函数,通常是指生成用于创建指针类型与当前节点类型匹配的指针的指针创建函数。其中,指针类型与当前节点类型匹配,通常是指,指针类型与当前节点类型相同或相应。作为示例,若当前节点类型为StringLiteral类型,则指针类型可以为StringLiteral类型,也可以为OtxStringLiteral类型。在当前节点类型为StringLiteral类型,且指针类型也为StringLiteral类型时,可以认为指针类型与当前节点类型相同。在当前节点类型为StringLiteral类型,而指针类型为OtxStringLiteral类型时,可以认为指针类型与当前节点类型相应。
这里,上述执行主体可以通过遍历上述节点类型集合的方式,针对节点类型集合中的每一个节点类型,得到一条关联信息。具体地,在遍历到节点类型集合中的任一个节点类型时,上述执行主体可以执行一次存储步骤。其中,存储步骤包括:首先,生成用于创建与当前节点类型匹配的指针的指针创建函数。然后,将当前节点类型与所生成的指针创建函数关联存储至关联信息集中。需要指出的是,上述执行主体可以采用现有技术或未来发展的技术,生成用于创建某种类型的指针的函数,本申请对此不做限定。
在得到针对当前节点类型的指针创建函数后,上述执行主体可以将当前节点类型与所得到的指针创建函数关联,之后,将关联后的当前节点类型与指针创建函数作为关联信息,存储至关联信息集。需要指出的是,缺省状态下,关联信息集为空集。
本实现方式中,预先给每一种节点类型关联一个指针创建函数,以得到用于描述节点类型与指针创建函数之间的关联关系的关联信息集。可以实现在对otx文件进行转换过程中,通过从关联信息集中查找关联信息的方式,得到与节点类型关联的指针创建函数。有助于实现快速地得到指针创建函数,从而快速地创建指针,有助于提高将源格式文件转换成目标格式文件的文件转换效率。
在本实施例的一些可选的实现方式中,指针创建函数所创建的指针为指向存储节点的数据的存储地址的指针。
举例来说,若指针为:OtxBase*p,即,为基类指针p。此时,p就是指针,该指针指向一个存储地址,可以通过该存储地址来访问所存储的数据。需要指出的是,所创建的指针为指向存储节点的数据的存储地址的指针,可以使得转换得到的程序文件更加简洁,且执行速度更快。
在上述实施例的一些可选的实现方式中,通过指针创建函数所创建的指针访问节点的数据,包括:从指针所指向的存储地址,获取节点的数据。
本实现方式中,若指针创建函数所创建的指针为指向存储节点的数据的存储地址的指针,则上述执行主体可以直接得到该指针所指向的存储地址,然后从该存储地址获取到节点的数据,从而实现访问到节点的数据。以指针的形式访问数据,程序的执行效率更高,有助于提高数据访问效率。
继续参考图3,图3为本申请实施例提供的一种文件转换方法的流程示意图。如图3所示的文件转换方法,包括如下步骤301-306。步骤301-306的执行主体可以为各种设备,如,车辆诊断设备。
步骤301,创建map变量。
这里,上述执行主体可以创建一个map变量,即创建一个空的关联信息集。
步骤302,向map中插入数据。
这里,上述执行主体可以向map中插入键值对。其中,键值对中的键为节点类型,键值对中的值为指针创建函数。具体地,针对预先统计得到的节点类型集合中的每一个节点类型,可以得到一个键值对。一个键值对即为一条关联信息。这样,可以得到包括多个关联信息的关联信息集。
举例来说,若所统计到的节点类型总共有430种,则此时节点类型集合可以包括430个集合元素,一个集合元素表示一种节点类型。那么,map中将插入430个键值对数据。此时,可以得到包括430个关联信息的关联信息集。
需要指出的是,上述步骤301-302用于预先构建关联信息集。
步骤303,解析otx文件中的节点,得到节点和节点的节点类型。
这里,otx文件通常是指XML格式的otx文件。上述执行主体可以采用针对XML格式的文件解析方式对otx文件进行解析,得到上述otx文件的节点和节点的节点类型。
步骤304,在map中查找节点类型所在的键值对。
这里,上述执行主体可以采用节点类型,从map的所有键值对中找到键为上述节点类型的键值对。所找到的键值对中的值为节点类型关联的指针创建函数。
步骤305,执行键值对中的value中的lambda函数,创建指针对象,返回指针。
上述lambda函数为指针创建函数。
这里,上述执行主体可以执行与上述节点类型关联的指针创建函数,以实现创建指针对象。这里,上述指针对象为指向存储节点的数据的存储地址的指针。在创建指针对象后,上述执行主体可以返回所得到的指针。
需要指出的是,上述步骤304-305用于针对节点创建指针,以实现通过指针创建函数所创建的指针访问节点的数据。
步骤306,执行下一步操作。
这里,上述执行主体在针对节点创建指针后,还需要继续执行与文件转换相关的其他操作,实现将源格式文件转换成目标格式文件。
进一步参考图4,对应于上文实施例的文件转换方法,图4为本申请实施例提供的文件转换装置400的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图4,该装置包括:
文件解析单元401,用于对源格式文件进行解析,得到源格式文件的节点和节点的节点类型;
格式转换单元402,用于从预先存储的关联信息集中查找节点类型所在的关联信息,得到与节点类型关联的指针创建函数,以通过指针创建函数所创建的指针访问节点的数据,实现将源格式文件转换成目标格式文件。
在一个实施例中,关联信息集通过如下步骤得到:
遍历节点类型集合中的节点类型,并在访问当前节点类型时,执行如下存储步骤:生成用于创建与当前节点类型匹配的指针的指针创建函数,以及将当前节点类型与所生成的指针创建函数关联存储至关联信息集中。
在一个实施例中,指针创建函数所创建的指针为指向存储节点的数据的存储地址的指针。
在一个实施例中,通过指针创建函数所创建的指针访问节点的数据,包括:
从指针所指向的存储地址,获取节点的数据。
本实施例提供的装置,通过从预先存储的关联信息集中查找节点类型所在的关联信息,得到与节点类型关联的指针创建函数,可以实现快速地得到指针创建函数,从而实现快速地创建用于访问节点的数据的指针,有助于提高将源格式文件转换成目标格式文件的文件转换效率。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
进一步参考图5,图5为本申请一实施例提供的电子设备500的结构示意图。如图5所示,该实施例的电子设备500包括:至少一个处理器501(图5中仅示出一个处理器)、存储器502以及存储在存储器502中并可在至少一个处理器501上运行的计算机程序503,例如文件转换程序。处理器501执行计算机程序503时实现上述任意各个方法实施例中的步骤。处理器501执行计算机程序503时实现上述各个文件转换方法的实施例中的步骤。处理器501执行计算机程序503时实现上述各装置实施例中各模块/单元的功能,例如图4所示单元401至402的功能。
示例性的,计算机程序503可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器502中,并由处理器501执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序503在电子设备500中的执行过程。例如,计算机程序503可以被分割成文件解析单元,格式转换单元,各单元具体功能在上述实施例中已有描述,此处不再赘述。
电子设备500可以是服务器、台式电脑、平板电脑、云端服务器和移动终端等计算设备。电子设备500可包括,但不仅限于,处理器501,存储器502。本领域技术人员可以理解,图5仅仅是电子设备500的示例,并不构成对电子设备500的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器501可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器502可以是电子设备500的内部存储单元,例如电子设备500的硬盘或内存。存储器502也可以是电子设备500的外部存储设备,例如电子设备500上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器502还可以既包括电子设备500的内部存储单元也包括外部存储设备。存储器502用于存储计算机程序以及电子设备所需的其他程序和数据。存储器502还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种文件转换方法,其特征在于,所述方法包括:
对所述源格式文件进行解析,得到所述源格式文件的节点和所述节点的节点类型;
从预先存储的关联信息集中查找所述节点类型所在的关联信息,得到与所述节点类型关联的指针创建函数,以通过所述指针创建函数所创建的指针访问所述节点的数据,实现将源格式文件转换成目标格式文件。
2.根据权利要求1所述的方法,其特征在于,所述关联信息集通过如下步骤得到:
遍历节点类型集合中的节点类型,并在访问当前节点类型时,执行如下存储步骤:生成用于创建与当前节点类型匹配的指针的指针创建函数,以及将当前节点类型与所生成的指针创建函数关联存储至关联信息集中。
3.根据权利要求1所述的方法,其特征在于,所述指针创建函数所创建的指针为指向存储所述节点的数据的存储地址的指针。
4.根据权利要求3所述的方法,其特征在于,所述通过所述指针创建函数所创建的指针访问所述节点的数据,包括:
从所述指针所指向的存储地址,获取所述节点的数据。
5.一种文件转换装置,其特征在于,所述装置包括:
文件解析单元,用于对所述源格式文件进行解析,得到所述源格式文件的节点和所述节点的节点类型;
格式转换单元,用于从预先存储的关联信息集中查找所述节点类型所在的关联信息,得到与所述节点类型关联的指针创建函数,以通过所述指针创建函数所创建的指针访问所述节点的数据,实现将源格式文件转换成目标格式文件。
6.根据权利要求5所述的装置,其特征在于,所述关联信息集通过如下步骤得到:
遍历节点类型集合中的节点类型,并在访问当前节点类型时,执行如下存储步骤:生成用于创建与当前节点类型匹配的指针的指针创建函数,以及将当前节点类型与所生成的指针创建函数关联存储至关联信息集中。
7.根据权利要求5所述的装置,其特征在于,所述指针创建函数所创建的指针为指向存储所述节点的数据的存储地址的指针。
8.根据权利要求7所述的装置,其特征在于,所述通过所述指针创建函数所创建的指针访问所述节点的数据,包括:
从所述指针所指向的存储地址,获取所述节点的数据。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述的方法。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011036240.9A CN112181924A (zh) | 2020-09-27 | 2020-09-27 | 文件转换方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011036240.9A CN112181924A (zh) | 2020-09-27 | 2020-09-27 | 文件转换方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112181924A true CN112181924A (zh) | 2021-01-05 |
Family
ID=73944636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011036240.9A Pending CN112181924A (zh) | 2020-09-27 | 2020-09-27 | 文件转换方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181924A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115145990A (zh) * | 2022-07-13 | 2022-10-04 | 深圳市泰洲科技有限公司 | 一种用于海关电子申报的数据处理方法及相关设备 |
CN115481298A (zh) * | 2022-11-14 | 2022-12-16 | 阿里巴巴(中国)有限公司 | 图数据处理方法及电子设备 |
CN115659941A (zh) * | 2022-11-11 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 适应于多类型接口的文件生成方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593457A (zh) * | 2013-11-22 | 2014-02-19 | 方正国际软件有限公司 | 文档格式转换方法 |
WO2015026925A1 (en) * | 2013-08-21 | 2015-02-26 | Simplivity Corporation | System and method for virtual machine conversion |
CN105787080A (zh) * | 2016-03-02 | 2016-07-20 | 深圳市元征科技股份有限公司 | 节点数据处理方法及装置 |
CN109325217A (zh) * | 2018-09-19 | 2019-02-12 | 深圳市元征科技股份有限公司 | 一种文件转换方法、系统、装置及计算机可读存储介质 |
CN109816112A (zh) * | 2019-01-11 | 2019-05-28 | 合肥本源量子计算科技有限责任公司 | 一种解析量子程序存储文件的方法及装置 |
-
2020
- 2020-09-27 CN CN202011036240.9A patent/CN112181924A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015026925A1 (en) * | 2013-08-21 | 2015-02-26 | Simplivity Corporation | System and method for virtual machine conversion |
CN103593457A (zh) * | 2013-11-22 | 2014-02-19 | 方正国际软件有限公司 | 文档格式转换方法 |
CN105787080A (zh) * | 2016-03-02 | 2016-07-20 | 深圳市元征科技股份有限公司 | 节点数据处理方法及装置 |
CN109325217A (zh) * | 2018-09-19 | 2019-02-12 | 深圳市元征科技股份有限公司 | 一种文件转换方法、系统、装置及计算机可读存储介质 |
CN109816112A (zh) * | 2019-01-11 | 2019-05-28 | 合肥本源量子计算科技有限责任公司 | 一种解析量子程序存储文件的方法及装置 |
Non-Patent Citations (1)
Title |
---|
刘立等: "JSON与XML动态转换研究及应用", 《软件导刊》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115145990A (zh) * | 2022-07-13 | 2022-10-04 | 深圳市泰洲科技有限公司 | 一种用于海关电子申报的数据处理方法及相关设备 |
CN115659941A (zh) * | 2022-11-11 | 2023-01-31 | 摩尔线程智能科技(北京)有限责任公司 | 适应于多类型接口的文件生成方法及装置 |
CN115481298A (zh) * | 2022-11-14 | 2022-12-16 | 阿里巴巴(中国)有限公司 | 图数据处理方法及电子设备 |
CN115481298B (zh) * | 2022-11-14 | 2023-03-14 | 阿里巴巴(中国)有限公司 | 图数据处理方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112181924A (zh) | 文件转换方法、装置、设备及介质 | |
WO2021017735A1 (zh) | 一种智能合约的形式化验证方法、电子装置及存储介质 | |
CN111045678A (zh) | 页面执行动态代码的方法、装置、设备及存储介质 | |
CN111459977B (zh) | 自然语言查询的转换 | |
US11556812B2 (en) | Method and device for acquiring data model in knowledge graph, and medium | |
WO2021051624A1 (zh) | 数据获取方法、装置、电子设备及存储介质 | |
CN113419740B (zh) | 程序数据流的分析方法、装置、电子设备及可读存储介质 | |
CN107766036B (zh) | 一种模块的构建方法、构建装置及终端设备 | |
CN116028028B (zh) | 请求函数生成方法、装置、设备及存储介质 | |
CN108427580B (zh) | 配置对命名重复的检测方法、存储介质和智能设备 | |
CN112347324B (zh) | 一种文档查询方法、装置、电子设备及存储介质 | |
CN115392235A (zh) | 字符匹配方法、装置、电子设备及可读存储介质 | |
CN118277253A (zh) | 程序验证方法、装置、设备、介质和产品 | |
CN108008947B (zh) | 一种编程语句的智能提示方法、装置、服务器及存储介质 | |
CN113609128A (zh) | 生成数据库实体类的方法、装置、终端设备及存储介质 | |
CN108694172B (zh) | 信息输出方法和装置 | |
US20080010632A1 (en) | Processing large sized relationship-specifying markup language documents | |
CN117850792A (zh) | 智能合约解析方法、装置及计算机设备 | |
CN112667664A (zh) | 数据库间语句转换方法、装置、终端设备及介质 | |
CN113741864B (zh) | 基于自然语言处理的语义化服务接口自动设计方法与系统 | |
CN110471708B (zh) | 基于可重用组件的配置项获取的方法及装置 | |
CN112445797A (zh) | 车辆诊断数据引用方法、装置、终端设备及存储介质 | |
US20070168857A1 (en) | Transformation of Source Data in a Source Markup Language to Target Data in a Target Markup Language | |
CN111597164A (zh) | 数据库结构测试方法、数据库结构测试装置及终端设备 | |
CN114764406A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210105 |
|
RJ01 | Rejection of invention patent application after publication |