2010-11-26 195 views
0

敲擊http服務器後,我得到XML格式的響應。我正在使用libcurl來達到這個目的。 我正在考慮使用一些XML解析器,但是當我看到他們的API時,他們都採取一個XML文件,但我有一個char *中的數據。解析XML響應

是否有任何可用的XML解析器這需要的char *作爲輸入

我的代碼是在Linux下C。

我是一個新手,以XML域:)

#include <curl/curl.h> 


size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp) 
{ 
printf ("\n punith\n"); 
printf ("\n size %d\n",size); 
printf ("\n no. of mem %d\n",nmemb); 
printf ("\n%s\n",(char *)userp); 
printf ("%s",(char *)buffer); 

} 
int main(void) 
{ 
CURL *curl; 
CURLcode res; 

curl = curl_easy_init(); 
if(curl) { 
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); 
curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.1.188:80/un.xml"); 
res = curl_easy_perform(curl); 

/* always cleanup */ 
curl_easy_cleanup(curl); 
} 
return 0; 
} 

我的輸出將是

<RNQueryRsp> 
<RefID>ABCD999001</RefID> 
<PN>919</PN> 
<Result>1</Result> 
<RN>1414</RN> 
<DNO>100</DNO> 
<NRHN>101</NRHN> 
<LSA>XY</LSA> 
</RNQueryRsp> 

回答

0

首先,你的工作環境是什麼? Linux,Windows?
你沒有提到你看到的apis,我覺得它很奇怪。可能是你看到的只是加載要讀取的XML文件?
從GNOME檢查這個http://xmlsoft.org/

+0

對不起,我正在開發Linux。 – punith 2010-11-26 12:34:28