点击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>
答案 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/