libxml2 的使用方法

2021-06-03 07:59:56 字數 2482 閱讀 9883

libxml2 庫的簡介和安裝配置

libxml2-xml解析工具(依賴libiconv、zlib庫)

libxml2的使用介紹

xml資料結構:

xmlchar:對char的基本代替,是乙個utf-8編碼字串中的乙個位元組

xmldoc 和 xmldocptr:  樹的結構

xmlnode 和 xmlnodeptr:單個節點的結構

生成xmldoc、獲得根節點,獲得子節點

//4. 解析xml字串

xmldocptr doc = xmlparsememory(pxml, length);

//根據xmldoc獲得xml的根節點

xmlnodeptr cur = xmldocgetrootelement(doc);

//獲得子節點:->children獲得不是第乙個子節點,必須用next才能獲得第乙個子節點

cur = cur->children;

cur = cur->next;

// 獲得節點資訊中的內容: 注意釋放資源

xmlchar* key = xmlnodelistgetstring(doc, cur->xmlchildrennode, 1);

xmlfree(key);

//獲得節點資訊屬性的值:屬性name,注意釋放資源

xmlchar* fversion = xmlgetprop(cur, "version");

xmlfree(fversion);

//根節點相關函式

xmlnodeptr xmldocgetrootelement (xmldocptr doc) //獲取文件根節點

xmlnodeptr xmldocsetrootelement (xmldocptr doc, xmlnodeptr root) //設定文件根節點

//建立子節點相關函式

xmlnodeptr xmlnewnode (xmlnsptr ns, const xmlchar * name) //建立新節點

xmlnodeptr xmlnewchild (xmlnodeptr parent, xmlnsptr ns, const xmlchar * name, const xmlchar * content) //建立新的子節點

xmlnodeptr xmlcopynode (const xmlnodeptr node, int extended) //複製當前節點

//新增子節點相關函式

xmlnodeptr xmladdchild (xmlnodeptr parent, xmlnodeptr cur) //給指定節點新增子節點

xmlnodeptr xmladdnextsibling (xmlnodeptr cur, xmlnodeptr elem) //新增後乙個兄弟節點

xmlnodeptr xmladdprevsibling (xmlnodeptr cur, xmlnodeptr elem) //新增前乙個兄弟節點

xmlnodeptr xmladdsibling (xmlnodeptr cur, xmlnodeptr elem) //新增兄弟節點

//屬性相關函式

xmlattrptr xmlnewprop (xmlnodeptr node, const xmlchar * name, const xmlchar * value) //建立新節點屬性

xmlchar * xmlgetprop (xmlnodeptr node, const xmlchar * name) //讀取節點屬性

xmlattrptr xmlsetprop (xmlnodeptr node, const xmlchar * name, const xmlchar * value) //設定節點屬性

=xmlnodelistgetstring(doc, cur->xmlchildrennode, 1);

=xmlnodecontent(cur);

libxml2編譯

一般編譯命令「gcc -o xml xml.c」有兩個defect:

defect 1:

編譯指令裡沒有指明libxml2的路徑。

linux通常的發行版的libxml2的路徑在/usr/include/libxml2下面,所以常用的引數是 -i/usr/include/libxml2

defect 2:

libxml2是需要鏈結庫檔案的。沒有鏈結庫檔案的引數,自然報告一堆鏈結錯誤。

加上這個應該就行: -lxml2

也就是說,試一下這個:

gcc -o xml xml.c -i/usr/include/libxml2 -lxml2

ps:「#include 」這樣寫是不行的。雖然這樣能找到parser.h這個檔案,但這個檔案裡面列的全是相對路徑,於是編譯器去找:《你pwd的路徑》/libxml什麼之類的去了,自然找不到。除非你的當前目錄是/usr /include/libxml2這個目錄。

ps 2:

[url]

如何使用libxml2庫?

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

libxml2的安裝和使用

安裝方法 sudo apt get install libxml2 sudo apt get install libxml2 dev 利用以上命令安裝完軟體包後可以利用以下命令來檢視軟體包的狀態 確定是否安裝成功 dpkg s libxml2 dev 也可以用如下命令 得到的結果是一樣的 dpkg ...

libxml2編譯安裝

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