libxml2常用函式集錦

2021-05-22 07:22:20 字數 3691 閱讀 8202

由於libxml函式很多,而且網頁顏色頁不太好看,加上尋找函式也不容易,所以在此貼出常用函式供自己和大家參考

//非常重要的2個函式雖然這兩個函式不在tree.h但對於使用tree.h中的函式很重要,所以在這裡列出來

int xmlkeepblanksdefault (int val) //設定是否忽略空白節點,比如空格,在分析前必須呼叫,預設值是0,最好設定成1.否則會有慘痛的除錯經歷...

xmldocptr xmlparsefile (const char * filename) //分析乙個xml檔案,並返回乙個文件物件指標

//xml操作的基礎結構提及其指標型別

xmldoc, xmldocptr 文件物件的結構體及其指標 xmlnode xmlnodeptr 節點物件的結構體及其指標 xmlattr xmlattrptr 節點屬性的結構體及其指標 xmlns xmlnsptr 節點命名空間的結構及其指標

//根節點相關函式

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) //設定節點屬性

libxml庫提供了一些.net風格的函式,以流的形式來讀取並分析xml檔案.

xmltextreader xmltextreaderptr //xmlreader的結構體及其指標

xmltextreaderptr xmlreaderforfile (const char * filename, const char * encoding, int options) //開啟乙個xml檔案並返回xmlreader物件,準備開始分析.

int xmltextreaderread (xmltextreaderptr reader) //讀取下乙個節點(注意,是下乙個,不是下乙個同層節點)

int xmltextreadernext (xmltextreaderptr reader) //讀取下乙個同層節點

int xmltextreadernodetype (xmltextreaderptr reader) //判斷當前節點的型別

xmlchar *xmltextreadergetattribute (xmltextreaderptr reader, const xmlchar * name) //獲取當前節點的指定屬性

xmlchar *xmltextreaderreadstring (xmltextreaderptr reader) //讀取當前節點下的text

xmlnodeptr xmltextreaderexpand (xmltextreaderptr reader) //將當前節點展開成乙個節點物件(慎用)

int xmltextreaderhasvalue (xmltextreaderptr reader) //判斷當前節點是否有text值

int xmltextreaderhasattributes (xmltextreaderptr reader) //判斷當前節點是否包含屬性

int xmltextreadermovetoattribute (xmltextreaderptr reader, const xmlchar * name) //移動指標到當前節點的指定屬性名的屬性

int xmltextreadermovetoattributeno (xmltextreaderptr reader, int no) //移動指標到當前節點指定屬性編號的屬性

int xmltextreadermovetoelement (xmltextreaderptr reader) //將指標移會當前節點

int xmltextreadermovetofirstattribute (xmltextreaderptr reader) //將指標移動到當前節點的第乙個屬性

int xmltextreadermovetonextattribute (xmltextreaderptr reader) //將指標移動到當前節點的下乙個屬性

xmlchar *xmltextreadername (xmltextreaderptr reader) //返回當前節點的名字

libxml自定義了乙個字元型別xmlchar,其本質是 unsigned char.

另外,libxml提供了乙個巨集來將char*轉換成xmlchar*, 名字很有趣,叫 bad_cast 它的本質其實是 unsigned char*.

為了方便對xmlchar型別字串的操作,libxml提供了自己的函式,它們的定義於標準c函式庫中的字串函式很像.

xmlchar* xmlstrcat (xmlchar *cur, const xmlchar * add)

const xmlchar *xmlstrchr(const xmlchar * str, xmlchar val)

int xmlstrcmp (const xmlchar * str1, const xmlchar * str2)

int xmlstrlen (const xmlchar * str)

xmlchar *xmlstrncat (xmlchar * cur, const xmlchar * add, int len)

int xmlstrncmp (const xmlchar * str1, const xmlchar * str2, int len)

const xmlchar *xmlstrstr (const xmlchar * str, const xmlchar * val)

相信這些函式大家都看得眼熟,這裡就不一一解釋了.

libxml2常用函式集錦之一

由於libxml函式很多,而且網頁顏色頁不太好看,加上尋找函式也不容易,所以在此貼出常用函式供自己和大家參考 非常重要的2個函式雖然這兩個函式不在tree.h但對於使用tree.h中的函式很重要,所以在這裡列出來 int xmlkeepblanksdefault int val 設定是否忽略空白節點...

Libxml2常用概述及常用函式

設定是否忽略空白節點,比如空格,在分析前必須呼叫,預設值是,最好設定成.否則會有慘痛的除錯經歷.int xmlkeepblanksdefault int val 分析乙個xml檔案,並返回乙個文件物件指標 xmldocptr xmlparsefile const char filename xml操...

libxml2編譯安裝

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