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