CN101145157A - 一种xml格式嵌入式设备特征信息解析方法 - Google Patents
一种xml格式嵌入式设备特征信息解析方法 Download PDFInfo
- Publication number
- CN101145157A CN101145157A CNA2007101084659A CN200710108465A CN101145157A CN 101145157 A CN101145157 A CN 101145157A CN A2007101084659 A CNA2007101084659 A CN A2007101084659A CN 200710108465 A CN200710108465 A CN 200710108465A CN 101145157 A CN101145157 A CN 101145157A
- Authority
- CN
- China
- Prior art keywords
- node
- data structure
- xml
- analytic method
- information
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种XML格式嵌入式设备特征信息解析方法,包括:根据XML格式嵌入式设备特征信息长度位于其对应长度范围选择进行解析;将被解析的XML格式嵌入式设备特征信息简化为节点集合并按声明类型、元素类型和不明类型进行区分;根据节点类型分类解析或处理各节点并通过链接各节点;将各节点信息映射到预先设定的数据结构中并从该数据结构获取信息。这种方法仅对限定范围内的XML文档解析并利用三种简单节点类型进行简化,从而能在软硬件资源较紧张的嵌入式设备中获得很好使用。
Description
技术领域
本发明涉及嵌入式软件,具体涉及一种XML格式嵌入式设备特征信息解析方法。
背景技术
在嵌入式设备中处理的相关信息中,一些信息是与设备本身特性相关的固定特征数据,例如:生产日期等。这些信息与具体的某个设备相关,而不是某一类设备的公共信息。一般的设备管理控制系统保存的信息是针对某一类设备的信息,将设备的特征信息保存到设备管理控制系统中是不合理的,体现不出不同设备在某些特征上的差异性。随着嵌入式设备的日益复杂,设备的特征信息量越来越大。因此这类特征信息需要保存到非易失存储器中(例如:FLASH),这样既能存储信息量较大的信息,又保证设备掉电不会丢失。存储方式上一般采用某种固定格式进行存储,以方便读取和修改。
XML是W3C定义的一种标准语言,具有可扩展性、平台独立性、并且支持国际化和地区化的特点,因此目前很多嵌入式设备采用XML作为设备信息保存的格式。但是XML的标准规范比较庞杂,如果严格按照XML的标准规范进行解析和验证,对软硬件资源要求较高,从而难以满足软硬件资源相对紧张的嵌入式设备。
发明内容
本发明需要解决的技术问题是提供一种XML格式嵌入式设备特征信息解析方法,能够简化解析,降低解析对嵌入式系统对软硬件资源的要求。
本发明的上述技术问题这样解决,提供一种XML格式嵌入式设备特征信息解析方法,包括以下步骤:
1.1)根据需要解析的XML格式嵌入式设备特征信息长度位于其对应长度范围选择进行解析;
1.2)将被解析的XML格式嵌入式设备特征信息简化为节点集合并按声明类型、元素类型和不明类型进行区分;
1.3)根据节点类型分类解析或处理各节点并链接各节点,主要链接元素类型节点,为了一致也可将声明类型节点一起链接;
1.4)将各节点信息映射到预先设定的数据结构中并从该数据结构获取信息。
按照本发明提供的解析方法,该解析方法还包括根据所述预先设定的数据结构已经写入信息且未重写直接从所述数据结构获取信息;所述需要解析即:所述预先设定的数据结构未写入或需要重新写入信息。
按照本发明提供的解析方法,所述步骤1.1)还包括根据XML格式嵌入式设备特征信息长度超出对应长度范围直接退出解析。
按照本发明提供的解析方法,所述长度范围由预先设定的数据结构及其允许扩展范围决定,即:所述预先设定的数据结构可以扩展变化但不允许无限制扩展;扩展变化时需要修订该数据结构。
按照本发明提供的解析方法,所述步骤1.2)中的简化包括遍历所述XML格式嵌入式设备特征信息和查找对应关键字。
按照本发明提供的解析方法,所述关键字包括“<”和“?xml”。
按照本发明提供的解析方法,所述步骤1.3)包括忽略或不解析不明类型节点,如果全部是不明类型节点才退出解析。
按照本发明提供的解析方法,所述步骤1.3)包括通过遍历节点和查找对应关键字对声明类型或元素类型节点进行解析或处理。
按照本发明提供的解析方法,所述关键字包括“?>”、“version”、“>”或与“<v>”对应的“</v>”;其中v代指任意字符。
按照本发明提供的解析方法,所述元素类型节点一般为多个,包括一个根节点和若干子节点或子子节点。
按照本发明提供的解析方法,所述声明类型节点为一个。
本发明提供的一种XML格式嵌入式设备特征信息解析方法,只对限定范围内的XML文档解析并利用三种节点类型简化解析,从而能在软硬件资源较紧张的嵌入式设备中、较好地解析以XML为格式保存的设备特征信息,满足实际需要。
附图说明
下面结合附图和具体实施例进一步对本发明进行详细说明。
图1是是本发明解析方法处理流程示意图。
图2是本发明具体实施例处理流程示意图。
具体实施方式
首先,说明本发明主要思想:
根据设备的现有资源对设备特征信息的规模进行限定,只对限定范围内的XML文档解析,从而尽可能使用最少资源来解析信息;解析时采用简单的XML解析规则,即将XML文档简化为几种简单类型的节点集合,将这几种类型的节点使用统一的数据结构进行保存,只是类型上进行区分,然后利用各个节点之间的在XML中的位置关系通过链表进行链接;解析完成后,将解析结果映射到预先设定好的数据结构中,在特征信息已写入且无须重新写入时,可直接从该数据结构中获取信息,而不需要再次解析。
第二步,说明本发明XML格式嵌入式设备特征信息解析方法的主要步骤,如图1所示,包括:
第一步:从非易失存储器中读取XML字符流,并获取字符流长度值,比较预先限定值,若超出限定范围则退出解析,反之则转入第二步;
第二步:设置一个文档节点作为节点链表L的头节点,简化XML节点定义类型,定义节点类型有:声明类型D、元素类型E、不明类型U三种,遍历XML字符流,定义当前字符的节点类型,进入第三步;
第三步:根据节点类型,继续遍历查找字符,分类解析或处理节点;其中如果D节点存在,则有且只有一个,并且是整个文档的第一个节点;如果是E节点,则可以嵌套子元素节点;如果是U节点则退出解析;处理E节点时对元素名称、元素值、属性名称、属性值等分别进行验证;将当前节点链接到L尾端,同时转入第四步;
第四步:设置一个针对设备特征信息的数据结构T,将链表中的当前节点信息适配到该数据结构中;遍历结束后,转入第五步;
第五步:如果设备特征信息未发生改变,则第一步到第四步只需进行一次,每次只从T中获取信息,直至特征信息发生改变,则将转入第一步。
最后,结合具体实施例详细说明本发明:
SDH设备单板的单板信息有:生产条码、生产日期、PCB编码等。例如以下格式表示单板信息:
<?xml version=″1.0″encoding=″UTF-8″?>
<BDINFO>
<SN>100000000000000000</SN>
<DT>2006-01-01</DT>
<PCBNO>OL16-111111111</PCBNO>
<BDNAME>OL16PAX</BDNAME>
<PORT NO=″1″>
<SV>1.222</SV>
</PORT>
</BDINFO>
其中<?xml version=″1.0″encoding=″UTF-8″?>表示XML的声明部分,通常声明该文档的版本(version),编码方式(encoding)等等。从<BDINFO>到</BDINFO>是单板信息的主体部分。其中<SN>表示单板生产条码,<DT>表示单板生产日期,<PCBNO>表示PCB编码,<BDNAME>表示单板名称。
通过XML写入软件将XML文档写入单板FLASH中。解析和验证FLASH中的单板信息,其具体处理步骤,如图2所示,包括:
第一步:从单板FLASH中读取单板信息,首先验证字符流长度是否在规定的长度范围内,如果超出范围则退出解析,反之转入第二步;
第二步:设置一个文档节点作为节点链表L的头节点,遍历XML字符,获取节点类型:
2.1)查找XML字符流的第一个字符,判断第一个字符是否为“<”,如果不是则将节点类型置为不明类型UNKOWN,并置不明类型标志,如果是则继续查找后面的字符,判断后面字符是否为空,为空则退出解析,不为空则判断后面的字符是否与“?xml”匹配,如果是转入步骤2.2),反之转入步骤2.3);
2.2)将节点类型置为声明类型DECLARATION,同时判断是否置过声明类型或其他类型标志,如果置过则退出解析,反之置声明类型标志;
2.3)将节点类型置为元素类型ELEMENT;
获取节点类型后,进入第三步;
第三步:根据节点类型,继续遍历查找字符流,分类解析或处理该节点:
3.1)如果该节点为UNKOWN,忽略或不解析该节点;
3.2)如果该节点为DECLARATION,查找是否有“?>”字符,如果有则记录“<?xml”与“?>”之间的字符,同时判断这些字符中是否与声明属性关键字匹配(例如:“version”、“encoding”等),如果有则验证关键字对应的值是否超出属性值长度范围,没有超出则记录关键字和对应的关键字的值(例如:version的值为“1.0”)到该节点数据结构中,反之退出解析;处理完成后将该节点链接到L尾端,转入第二步;
3.3)如果该节点为ELEMENT,查找是否有“>”字符,如果有则记录“<”和“>”之间的字符串为V(例如“SN”),继续往后查找是否有字符“</V>”与“<V>”匹配,不匹配则退出解析,匹配则验证V是否超出元素名称长度范围,没有超出范围则将V记录至节点数据结构的元素名称中,反之退出解析;如果有V中有属性(例如:NO=“1”),验证和解析属性名称和属性值;记录“<V>”与“</V>”之间的字符串S(例如:“100000000000000000”),判断S的第一个字符是否为“<”,如果是则置新节点为ELEMENT并记录该节点为前一个节点的子节点关系(例如<PORT NO=“1”>是<BDINFO>的子节点),转入3,反之验证S是否超出元素值长度范围,没有超出范围则将S记录至节点数据结构的元素值中,反之退出解析;处理完成后将该节点链接到L尾端,同时将该节点与前一个节点的节点关系记录下来,转入第二步;每生成一个节点,根据节点关系记录该节点的路径信息(从根节点到该节点需要经过的节点,例如从根节点<BDINFO>到<SV>的路径为:“BDINFO->PORT->SV”),同时转入第四步;
第四步:设置一个针对单板信息的数据结构T,将节点中的信息适配到T中;完成适配后,转入第五步;
第五步:如果单板信息未发生改变,即:已写入且无需重新写入,则第一步到第四步只需进行一次,每次只从T中获取信息,如果单板信息发生变化,即:需要重新写入,将通知解析器转入第一步重新解析。
Claims (10)
1.一种XML格式嵌入式设备特征信息解析方法,其特征在于,包括以下步骤:
1.1)根据需要解析的XML格式嵌入式设备特征信息长度位于其对应长度范围选择进行解析;
1.2)将被解析的XML格式嵌入式设备特征信息简化为节点集合并按声明类型、元素类型和不明类型进行区分;
1.3)根据节点类型分类解析或处理各节点并链接各元素类型节点;
1.4)将各节点信息映射到预先设定的数据结构中并从该数据结构获取信息。
2.根据权利要求1所述解析方法,其特征在于,该解析方法还包括根据所述预先设定的数据结构已经写入信息且未重写直接从所述数据结构获取信息。
3.根据权利要求1所述解析方法,其特征在于,所述步骤1.1)还包括根据XML格式嵌入式设备特征信息长度超出对应长度范围直接退出解析。
4.根据权利要求1或3所述解析方法,其特征在于,所述长度范围由预先设定的数据结构及其允许扩展范围决定,所述预先设定的数据结构可以扩展。
5.根据权利要求1所述解析方法,其特征在于,所述步骤1.2)中的简化包括遍历所述XML格式嵌入式设备特征信息和查找对应关键字。
6.根据权利要求5所述解析方法,其特征在于,所述关键字包括“<”和“?xml”。
7.根据权利要求1所述解析方法,其特征在于,所述步骤1.3)包括忽略或不解析不明类型节点。
8.根据权利要求1所述解析方法,其特征在于,所述步骤1.3)包括通过遍历节点和查找对应关键字对声明类型或元素类型节点进行解析或处理。
9.根据权利要求8所述解析方法,其特征在于,所述关键字包括“?>”、“version”、“>”或与“<v>”对应的“</v>”。
10.根据权利要求1所述解析方法,其特征在于,所述元素类型节点包括一个根节点和若干子节点或子子节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101084659A CN101145157B (zh) | 2007-06-14 | 2007-06-14 | 一种xml格式嵌入式设备特征信息解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101084659A CN101145157B (zh) | 2007-06-14 | 2007-06-14 | 一种xml格式嵌入式设备特征信息解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101145157A true CN101145157A (zh) | 2008-03-19 |
CN101145157B CN101145157B (zh) | 2010-06-02 |
Family
ID=39207685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101084659A Expired - Fee Related CN101145157B (zh) | 2007-06-14 | 2007-06-14 | 一种xml格式嵌入式设备特征信息解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101145157B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916162A (zh) * | 2010-08-05 | 2010-12-15 | 中国工商银行股份有限公司 | 一种基于有向图的动态界面生成方法、服务器及系统 |
CN101976244A (zh) * | 2010-09-30 | 2011-02-16 | 北京飞天诚信科技有限公司 | 对xml报文中的节点进行划分及其对其应用的方法 |
CN102087611A (zh) * | 2011-02-14 | 2011-06-08 | 中兴通讯股份有限公司 | 一种描述嵌入式设备的模拟设备属性的方法及模拟设备 |
CN102289445A (zh) * | 2011-06-01 | 2011-12-21 | 宇龙计算机通信科技(深圳)有限公司 | Xml文件解析方法、xml文件解析装置和终端 |
CN102314371A (zh) * | 2011-09-07 | 2012-01-11 | 中兴通讯股份有限公司 | 基于可扩展标记语言的编码方法、解码方法及编解码装置 |
CN101425079B (zh) * | 2008-11-29 | 2012-09-05 | 中兴通讯股份有限公司 | Nv数据处理方法和装置 |
CN102999632A (zh) * | 2012-12-14 | 2013-03-27 | 上海斐讯数据通信技术有限公司 | 一种树形结构数据库的自动读取和提交方法 |
CN103366000A (zh) * | 2013-07-17 | 2013-10-23 | 飞天诚信科技股份有限公司 | 一种大体积xml报文的解析方法 |
CN103902539A (zh) * | 2012-12-25 | 2014-07-02 | 三星电子(中国)研发中心 | 可扩展标记语言数据解析方法及装置 |
CN108132999A (zh) * | 2017-12-21 | 2018-06-08 | 恒宝股份有限公司 | 一种元素名的处理方法及系统 |
CN109947803A (zh) * | 2019-03-12 | 2019-06-28 | 北京奇虎科技有限公司 | 一种数据处理方法、系统及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1417717A (zh) * | 2001-11-08 | 2003-05-14 | 英业达股份有限公司 | 可用以接收并解析xml格式订单的管理系统 |
-
2007
- 2007-06-14 CN CN2007101084659A patent/CN101145157B/zh not_active Expired - Fee Related
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425079B (zh) * | 2008-11-29 | 2012-09-05 | 中兴通讯股份有限公司 | Nv数据处理方法和装置 |
CN101916162A (zh) * | 2010-08-05 | 2010-12-15 | 中国工商银行股份有限公司 | 一种基于有向图的动态界面生成方法、服务器及系统 |
CN101976244A (zh) * | 2010-09-30 | 2011-02-16 | 北京飞天诚信科技有限公司 | 对xml报文中的节点进行划分及其对其应用的方法 |
CN101976244B (zh) * | 2010-09-30 | 2012-09-05 | 飞天诚信科技股份有限公司 | 对xml报文中的节点进行划分及其对其应用的方法 |
CN102087611B (zh) * | 2011-02-14 | 2015-01-28 | 中兴通讯股份有限公司 | 一种描述嵌入式设备的模拟设备属性的方法及模拟设备 |
CN102087611A (zh) * | 2011-02-14 | 2011-06-08 | 中兴通讯股份有限公司 | 一种描述嵌入式设备的模拟设备属性的方法及模拟设备 |
WO2012109933A1 (zh) * | 2011-02-14 | 2012-08-23 | 中兴通讯股份有限公司 | 一种描述嵌入式设备的模拟设备属性的方法及模拟设备 |
CN102289445A (zh) * | 2011-06-01 | 2011-12-21 | 宇龙计算机通信科技(深圳)有限公司 | Xml文件解析方法、xml文件解析装置和终端 |
CN102314371A (zh) * | 2011-09-07 | 2012-01-11 | 中兴通讯股份有限公司 | 基于可扩展标记语言的编码方法、解码方法及编解码装置 |
CN102314371B (zh) * | 2011-09-07 | 2017-04-12 | 中兴通讯股份有限公司 | 基于可扩展标记语言的编码方法、解码方法及编解码装置 |
CN102999632A (zh) * | 2012-12-14 | 2013-03-27 | 上海斐讯数据通信技术有限公司 | 一种树形结构数据库的自动读取和提交方法 |
CN103902539A (zh) * | 2012-12-25 | 2014-07-02 | 三星电子(中国)研发中心 | 可扩展标记语言数据解析方法及装置 |
CN103902539B (zh) * | 2012-12-25 | 2017-11-03 | 三星电子(中国)研发中心 | 可扩展标记语言数据解析方法及装置 |
CN103366000B (zh) * | 2013-07-17 | 2016-05-25 | 飞天诚信科技股份有限公司 | 一种大体积xml报文的解析方法 |
CN103366000A (zh) * | 2013-07-17 | 2013-10-23 | 飞天诚信科技股份有限公司 | 一种大体积xml报文的解析方法 |
CN108132999A (zh) * | 2017-12-21 | 2018-06-08 | 恒宝股份有限公司 | 一种元素名的处理方法及系统 |
CN109947803A (zh) * | 2019-03-12 | 2019-06-28 | 北京奇虎科技有限公司 | 一种数据处理方法、系统及存储介质 |
CN109947803B (zh) * | 2019-03-12 | 2021-11-19 | 成都全景智能科技有限公司 | 一种数据处理方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101145157B (zh) | 2010-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101145157B (zh) | 一种xml格式嵌入式设备特征信息解析方法 | |
US8117217B2 (en) | Information processing apparatus and encoding method | |
CN101763255B (zh) | 一种专用界面工具的格式转换方法及装置 | |
JP4997777B2 (ja) | デリミタを減少させる方法及びシステム | |
CA2500422A1 (en) | Annotated automaton encoding of xml schema for high performance schema validation | |
CN100371936C (zh) | 用于树型结构文件的数据查找方法 | |
CN109460220A (zh) | 报文预定义代码生成方法、装置、电子设备和存储介质 | |
CN113508385B (zh) | 使用子例程图谱进行形式语言处理的方法和系统 | |
CN109614329B (zh) | 一种基于接口控制文件的软件测试用例辅助设计方法 | |
CN103365992A (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN107239492A (zh) | Xml文档转换为对象、对象转换为xml文档的方法及装置 | |
KR20050097444A (ko) | 엘리먼트 서치 방법 및 장치와 그 방법을 수행하기 위한프로그램이 저장된 기록 매체 | |
JP5548331B2 (ja) | ナビゲーションデータベースのためのフォーマット記述 | |
JP5044943B2 (ja) | データ文書の高速符号化方法及びシステム | |
CN100444117C (zh) | 有效的小占用xml分析 | |
US7051016B2 (en) | Method for the administration of a data base | |
CN113704575A (zh) | 解析XML与Java文件的SQL方法、装置、设备及存储介质 | |
US20080276230A1 (en) | Processing bundle file using virtual xml document | |
CN102411602A (zh) | 一种基于 fpga 实现的xml 并行投机解析方法 | |
US20170199849A1 (en) | Encoding method, encoding device, decoding method, decoding device, and computer-readable recording medium | |
CN100462973C (zh) | Xml文件预处理方法、装置、读取方法和装置 | |
US10853559B2 (en) | Symmetric text replacement | |
CN108885612B (zh) | 用于处理经二进制编码的结构文档的设备和方法 | |
CN101446968B (zh) | 解析可扩展标记语言的方法 | |
CN116756382A (zh) | 检测敏感字符串的方法、装置、设置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100602 Termination date: 20190614 |