linux c 使用libxml2讀取配置檔案

2021-05-02 02:17:28 字數 2957 閱讀 3887

由於在c下讀取文字的配置檔案比較麻煩所以想找乙個方便讀取配置檔案的方法。但是在網上左找右找,大家的方法都一樣。還是讀檔案啊讀檔案。後來找到了 libxml,發現用法比較簡單。研究了一把。確實還不錯,人家不但帶.so還帶.a方便打包。呵呵。廢話不說了。直接上程式。

首先建立乙個xml吧。就叫它my.xml

<

? xml version=

"1.0"

?>

< root>

< mysql>

< host> 127. 0. 0. 1<

/ host>

< port> 3306<

/ port>

< db>

test

<

/ db>

< username> root<

/ username>

< password> 123456<

/ password>

<

/ mysql>

<

/ root>

然後貼出分析這個xml的程式readxml.c

#

include

< stdio. h>

#include

< stdlib. h>

#include

< unistd. h>

#include

<

string

. h>

#include

< libxml/ xmlmemory. h>

#include

< libxml/ parser. h>

int parsestory( xmldocptr doc, xmlnodeptr cur)

elseif(

(! xmlstrcmp( cur-

> name,

(const xmlchar*

)"host"))

)elseif(

(! xmlstrcmp( cur-

> name,

(const xmlchar*

)"port"))

)elseif(

(! xmlstrcmp( cur-

> name,

(const xmlchar*

)"db"))

)elseif(

(! xmlstrcmp( cur-

> name,

(const xmlchar*

)"username"))

)elseif(

(! xmlstrcmp( cur-

> name,

(const xmlchar*

)"password"))

)cur = cur-

> next;

}return 0;

}int main(

int argc,

char

** argv)

printf

("xmlparsefile ok./n");

//取得結點指標

cur= xmldocgetrootelement( doc);if

( cur=

=null

)printf

("xmldocgetrootelement ok./n");

//取得根結點指標,我這裡是root,記住,這裡一定要是根結點

if( xmlstrcmp( cur-

> name,

(const xmlchar *

)"root"))

printf

("ok./n");

//通過這個遞迴函式,遍歷出所有感興趣的結點。

parsestory( doc, cur)

;//一定要釋放doc哦。

xmlfreedoc( doc)

;exit

( 0);}

奶奶滴,怎麼中文到這裡就變了啊。早知道就不加中文了。害得俺又加一次注釋。

最後makefile檔案

cc= gcc - wall - g

libs=

` xml2- config -

- libs`

cflags=

` xml2- config -

- cflags`

readxml: readxml. o

$( cc)

- o readxml readxml. o $( libs)

readxml. o: readxml. c

$( cc)

- c readxml. c $( cflags)

clean:

rm - f *

. o readxml

最後編譯執行結果如下:

huying@ubuntu:

~/ c/ xml$ make

gcc - wall - g - c readxml. c `xml2- config -

- cflags`

gcc - wall - g - o readxml readxml. o `xml2- config -

- libs`

huying@ubuntu:

~/ c/ xml$ .

/ readxml my. xml

xmlparsefile ok.

xmldocgetrootelement ok.

ok.[ mysql]

host=

> 127. 0. 0. 1

port=

> 3306

db=>

test

username=

> root

password=

> 123456

huying@ubuntu:

~/ c/ xml$

如何使用libxml2庫?

libxml2庫是幹什麼的?很多人就開始說,是搞xml的 解析xml格式的 讀取xml檔案的.其實說的都不錯,但是對libxml2庫的理解狹隘了一點。libxml2現在不僅僅可以解析xml extensible markup language 格式,包括html hypertext markup l...

libxml2編譯安裝

僅作記錄學習。拷貝到ubuntu 12.04。首先進行解壓 tar zxvf libxml2 2.6.28.tar.gz 解壓到當前目錄下 cd libxml2 2.6.28 進行簡單的配置,具體的功能可以根據需求進行詳細了解 configure prefix usr local pc libxml...

libxml2 的使用方法

libxml2 庫的簡介和安裝配置 libxml2 xml解析工具 依賴libiconv zlib庫 libxml2的使用介紹 xml資料結構 xmlchar 對char的基本代替,是乙個utf 8編碼字串中的乙個位元組 xmldoc 和 xmldocptr 樹的結構 xmlnode 和 xmlno...