c 使用xerces讀取XML

2021-09-24 23:19:17 字數 2744 閱讀 9032

xml作為一種重要的檔案格式,應用面非常之廣。從asp.net的web.config,到android的頁面設計開發,webservice通訊等。有時候難免需要我們通過程式進行建立與解析,最近剛完成乙個c++專案,就需要讀取xml配置檔案,關於xml解析器的選擇很多,可以參考:

個人比較喜歡apache的開源專案,所以使用的是:xerces。它的使用方法,其實官方上已經有很多demo,詳見:個人覺得domcount比較實用,下面分享一下我的個人實踐。通過dom方式讀取xml中指定節點的屬性及文字值。

開發環境:visual studio 2013

首先,編譯xerceslib工程,得到xerces-c_3_1d.dll,xerces-c_3d.lib兩個檔案,其次需要在目標工程新增這2個檔案,以及相應的標頭檔案,然後是一點配置,接下來就是編碼。

下面詳細分步進行:

1.vs 2013 開啟xerces-c-3.1.2\projects\win32\vc12\xerces-all\xerces-all.sln

選中xerceslib->右擊->編譯

2.複製xerces-c-3.1.2\build\win32\vc12\debug資料夾下的xerces-c_3_1d.dll,xerces-c_3d.lib檔案到目標工程的編譯輸出目錄下(有編譯過一次才有),如:~\ debug\ 下面。

3.複製xerces-c-3.1.2下的src資料夾到目標工程下。

4.配置include directories 增加.\src,

配置dependencies 增加xerces-c_3d.lib,library directories 增加$(outdir)(即編譯輸出目錄)

2-4步是所有呼叫動態庫的通用配置方法,如果明白其中的原理,其實可以靈活配置。

xml檔案內容如下:

<?xml version="

1.0" encoding="

utf-8

"?>"1

">test11"2

">test12

"1">test21"2

">test31

"1">test31"2

">test32

5.開始實現編碼。

5.1包含標頭檔案

1 #include 2 #include 3 #include 4 #include
5.2初始化環境

1

try4

catch (const xmlexception&tocatch)

8///

9 xercesdomparser *parser = new

xercesdomparser();

10 parser->setvalidationscheme(xercesdomparser::val_always);

11 parser->setdonamespaces(true); //

optional

1213 errorhandler* errhandler = (errorhandler*) new

handlerbase();

14 parser->seterrorhandler(errhandler);

5.3載入xml檔案

1

try4

catch (const xmlexception&tocatch)

11catch (const domexception&tocatch)

18catch

(...)

5.4開始解析

1 domdocument *doc = parser->getdocument();

2 domelement *root = doc->getdocumentelement();//

讀取根節點

5.5 找對應節點值與屬性

1 domnode *dn=root;

2 dn = findchildnode(dn, "

child

");//

查詢child子節點

3for (dn = dn->getfirstchild(); dn != 0;dn = dn->getnextsibling())

4 ;

1415}16

}17 xmlplatformutils::terminate();//

釋放環境

下面是findchildnode函式的**

1 domnode* findchildnode(domnode *n, char *nodename)

2 11}12

}13catch (const xmlexception&tocatch)

1420

return0;

21 }

5.6 記得釋放環境

xmlplatformutils::terminate();
1.輸出結果為

對應節點值為:test11
總結:

C 讀取 讀取XML

讀取xml到listbox combobox 1,知識需求 1 訪問xml檔案的兩個基本模型 一,dom模型 使用dom的好處在於它允許編輯和更新xml文件,可以隨機訪問文件中的資料,可以使用xpath查詢,但是,dom的缺點在於它需要一次性的載入整個文件到記憶體中,對於大型的文件,這會造成資源問題...

使用c 如何讀取xml檔案

xmlreader和xmltextreader類定義在system.xml名字空間中。xmltextreader類源於xmlreader類。xmltextreader類可用來讀取xml文件。此類的read方法讀取此文件,直到其節點結束。在這篇文章裡,將演示如何使用xmltextreader類來讀取乙...

Xerces使用指南

xml中元素和結概念的解釋 對於xslt處理器來看,樹 就是要使用xslt轉換的xml原文件 中的元素,屬性,名字空間,注釋,文字內容,處理指令,還有整個文件 即看成根節點 這7種都是節點。那麼元素節點僅僅是其中的一種。簡單的說元素節點就是使用用左右尖括號 如 的那個元素的節點。比如下面的xml文件...