- 相關(guān)推薦
c語言解析xml
根據(jù)導(dǎo)師的要求,要用C語言解析一個(gè)xml文件,用于對(duì)升級(jí)文件進(jìn)行合法性判斷,進(jìn)而對(duì)軟件進(jìn)行升級(jí)。
上網(wǎng)搜了一些關(guān)于這方面的資料,發(fā)現(xiàn)有一些是用C++或Java等語言寫的,當(dāng)然也可以直接下載開源的代碼,也可以下載庫文件直接使用。但考慮到對(duì)xml文件解析其實(shí)用不到那么多功能,也考慮到硬件方面無法支持這么大的庫文件。因此,決定自己寫一段代碼用于解析簡(jiǎn)單的xml文件。
看了一些源代碼,發(fā)現(xiàn)他們主要使用樹型結(jié)構(gòu)來實(shí)現(xiàn)對(duì)xml 的解析,由于能力有限吧,感覺很麻煩,可能占用內(nèi)存也會(huì)很大,所以我苦苦思索了好久,決定使用遞歸的方法解析xml文件,每當(dāng)解析出相應(yīng)的數(shù)值時(shí),可以立即對(duì)這些數(shù)值進(jìn)行判定是否合法,如果合法的話,可以繼續(xù)解析;如果不合法的話,就可以直接跳出。
對(duì)這個(gè)xml文件,我做了很嚴(yán)格的定義:
<主標(biāo)簽 屬性值1>
<子標(biāo)簽> 屬性值2
<子標(biāo)簽>
<下級(jí)子標(biāo)簽>屬性值3
在這里,可以在標(biāo)簽間的任何地方進(jìn)行注釋,但禁止在標(biāo)簽內(nèi)部進(jìn)行注釋;標(biāo)簽可以有多層嵌套,但必須保證標(biāo)簽有結(jié)束標(biāo)志,嵌套必須合法。
屬性值的規(guī)定方面,可以正確的解析屬性值2和屬性值3,但不會(huì)解析屬性值1,屬性值1可以起到注釋的作用。
下面貼出一些主要的代碼:
首先讀取xml文件:
【 c語言解析xml】相關(guān)文章:
C語言的sizeo解析09-23
C語言題目及解析09-25
C語言的指針類型解析09-14
C語言數(shù)組實(shí)例解析10-21
C語言親密數(shù)實(shí)例解析10-28
用C-FREE編寫的C語言程序解析08-25
C語言測(cè)試題及答案解析11-04
C語言函數(shù)返回值解析09-17
深入解析C語言中的數(shù)值與真假08-14