乙個使用tingxml解析XML配置檔案的例子

2021-06-29 13:42:39 字數 2061 閱讀 7310

配置檔案如下所示:

<?xml version="1.0" encoding="utf-8" ?>

user-20141111\wwwhost>

ffffdbname>

sauser>

123456password>

db>

d:\downloadpath>

3timeout>

config>

讀取配置檔案的函式實現如下所示:

bool readconfigfile()

cstringa str;

str = strpath;

tixmldocument xmldoc( str.getbuffer() ); // 輸入xml路徑

str.releasebuffer();

if( !xmldoc.loadfile() ) // 讀取xml並檢查是否讀入正確

tixmlelement* pelmroot = null, *pelemtemp, *pelemtempson; // 根節點

pelmroot = xmldoc.rootelement(); // 得到根節點

if( !pelmroot )

pelemtemp = pelmroot->firstchildelement("db");

do pelemtempson = pelemtemp->firstchildelement("user");

if ( pelemtempson )

pelemtempson = pelemtemp->firstchildelement("password");

if ( pelemtempson )

pelemtempson = pelemtemp->firstchildelement("dbname");

if ( pelemtempson )

pelemtempson = pelemtemp->firstchildelement("dbname");

if ( pelemtempson )

} while (false);

return

true;

}

其中轉碼函式:utf8tocstring 的實現如下所示:

bool utf8tocstring( cstring& cstr, const

char* utf8str )

size_t utf8strlen = strlen(utf8str);

if( utf8strlen == 0 )

#ifdef unicode

// cstr = utf8str;

lptstr ptr = cstr.getbuffer(utf8strlen);

zeromemory(ptr,utf8strlen);

// cstring is unicode string so we decode

int newlen = multibytetowidechar(cp_utf8, 0, utf8str, utf8strlen, ptr, utf8strlen );

if( !newlen )

cstr.releasebuffer(utf8strlen);

cstr = cstr.left(newlen);

#else

wchar* buf = new wchar[utf8strlen*2+2];

zeromemory(buf,utf8strlen*2+2);

int newlen = multibytetowidechar(cp_utf8, 0, utf8str, utf8strlen, buf, utf8strlen);

if(!newlen)

cstr = buf;

delete buf;

#endif

return

true;

}

結果如下圖所示

使用原生的NSXmlParser解析xml資料

下面是本人使用原聲nsxmlparser對xml資料進行的解析。這裡有篇有一篇很不錯的教程,使用gdataxml庫對xml資料進行的解析,而且還有對xml資料格式的組建,講解的很是詳細。import viewcontroller.h pragma mark xml解析器 xml資料解析器 inte ...

使用RXMLElement工具類解析XML

現在來寫一篇我最近使用過的一種xml解析的方法的文章。xml解析有多種多樣的方法,包括蘋果自帶的方法和各種工具類,今天我只介紹用rxmlelement的工具類來解析xml。使用步驟 1.首先把xml解析類匯入工程 2.然後在加入框架libxml2.dylib 3.最後把header search p...

Android成長之路 使用DOM解析XML

1 建立乙個getpersonlist 方法 給它乙個流引數 返回乙個list集合 2 建立person集合 3 得到建立dom解析器的工廠物件 4 讓工廠物件建立解析器物件 5 使用解析器物件的parser inputstreamin 進行解析 6 獲取根節點 7 獲取persons的子節點 8 ...