MTK自帶的XML解析

2021-04-26 19:41:31 字數 4508 閱讀 4294

mtk

自帶的xml

解析現在大多數軟體都用

xml作為配置檔案,

mtk本身也帶了

xml檔案的解析,在此我不評說自帶

xml的解析效率,我只是想說怎麼簡單的應用:

先給出乙個簡單的

xml檔案的內容,我們以此檔案為例子來學習

mtk平台怎麼解析

xml檔案,不妨設檔名為

sample.xml,

其內容如下:

d="美女"

c="2">

<

g i="g1"

n="**美女"

n="泳裝美女"

mtk自帶的xml

解析的函式宣告在

xml_def.h

中。其中幾個關鍵的是:

/* external api */

extern kal_int32 xml_new_parser(xml_parser_struct *parser);

extern void xml_close_parser(xml_parser_struct *parser);

extern void xml_register_element_handler(

xml_parser_struct *parser,

xml_start_elem_hdlr start_hdlr,

xml_end_elem_hdlr end_hdlr);

extern void xml_register_data_handler(xml_parser_struct *parser, xml_data_hdlr data_hdlr);

extern kal_int32 xml_parse(xml_parser_struct *parser, kal_wchar *file_name);

幾個關鍵的處理函式:

typedef void (*xml_start_elem_hdlr) (void *data, const kal_char *el, const kal_char **attr, kal_int32 error);

typedef void (*xml_end_elem_hdlr) (void *data, const kal_char *el, kal_int32 error);

typedef void (*xml_data_hdlr) (void *resv, const kal_char *el, const kal_char *data, kal_int32 len, kal_int32 error);

我們使用的方式如下:

wchar filename=l」sample.xml」;

首先定義乙個;

//註冊讀取

xml內容的函式,為的是將處理讀出來的

xml內容

(預設的只是列印出來而已)

filename);

釋放用於分析的

buffer

等資源

對於xml

的解析是一行一行的解析的,對於本例來說,當註冊了後,解析

xml,

當遇到」<」

號後會呼叫

,將此行的內容讀到

attr

中,其中

el=」

l」,atr中是l

標籤的屬性,其組織方式是

你可以在此函式裡先一些對讀到的資訊進行儲存,等等你需要的操作,其第乙個引數

void *no_used

是沒有使用的。

當讀到某一行是

/>

時就呼叫使用者註冊的標籤結束處理函式

,其中的

data

沒有使用,

el是表示結束的標籤的名稱,

error

是錯誤**,

讀取內容的是

,它被呼叫的時機是在

<>

之外的內容,例如此例中的

289,

當在》符號後有內容時便呼叫

,其引數表示:第乙個

resv

是沒有使用,

el仍然是表示標籤的,比如此處是

s,data

中儲存的就是字串

289,

len表示

data

的長度。

此處我寫乙個處理函式給大家參照下,比如我想讀取的是

l標籤的

a屬性和第乙個

t標籤下的第二組

g下的第3個

s的大小(此例是

506)

則我們寫出如下的函式

char netip30];

}

MTK自帶的XML解析

現在大多數軟體都用xml作為配置檔案,mtk本身也帶了xml檔案的解析,在此我不評說自帶xml的解析效率,我只是想說怎麼簡單的應用 先給出乙個簡單的xml檔案的內容,我們以此檔案為例子來學習mtk平台怎麼解析xml檔案,不妨設檔名為sample.xml,其內容如下 289467 773030 264...

MTK 解析簡訊的內容

因為乙個專案要根據簡訊的內容來控制手機進行不同的工作,所以就要解析簡訊的內容,之後不把簡訊存到手機裡面。首先找到手機mmi收到簡訊的入口 setprotocoleventhandler mmi frm sms new sms ind,prt msg id mmi sms deliver msg in...

iOS 系統自帶xml解析(自定義封裝)

說實話,神他麼用過xml解析,只是調了幾次這種介面,每次都要寫,好麻煩,自己封裝一下,以後會有用吧。首先是基類 請求資料的自定義 委託處理 在文件開始的時候觸發 void parserdidstartdocument nsxmlparser parser 解析起始標記 void parser nsx...