解析XML响应

时间:2010-11-26 12:06:56

标签: c xml xml-parsing

点击http服务器后,我得到XML格式的响应。我正在使用libcurl来达到这个目的。 我正在考虑使用一些xml解析器,但是当我看到它们的API时,它们都采用了一个xml文件,但我将数据放在一个char *中。

是否有任何可用char *作为输入的XML解析器

我的代码在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>919012345678</PN>
<Result>1</Result>
<RN>1414</RN>
<DNO>100</DNO>
<NRHN>101</NRHN>
<LSA>XY</LSA>
</RNQueryRsp>

3 个答案:

答案 0 :(得分:1)

libxml2的xmlCtxtReadMemory()可能吗? 比照http://xmlsoft.org/html/libxml-parser.html#xmlCtxtReadMemory

答案 1 :(得分:0)

查看libxml2

答案 2 :(得分:0)

首先,您正在工作的环境是什么? Linux,windows?
你没有提到你看到的api,我觉得很奇怪。可能你看到的只是加载要读取的xml文件? 从GNOME http://xmlsoft.org/

中查看