C 解析XML响应

C 解析XML响应,c,xml,xml-parsing,C,Xml,Xml Parsing,点击http服务器后,我得到XML格式的响应。我使用libcurl就是为了这个目的。 我本想使用一些xml解析器,但当我看到它们的API时,它们都采用xml文件,但我的数据是char* 是否有以char*作为输入的XML解析器可用 我的代码是Linux上的C语言 我是XML领域的新手:) #包括 大小写入数据(void*缓冲区、大小、大小nmemb、void*userp) { printf(“\n punith\n”); printf(“\n大小%d\n”,大小); printf(“\n内存%d

点击http服务器后,我得到XML格式的响应。我使用libcurl就是为了这个目的。 我本想使用一些xml解析器,但当我看到它们的API时,它们都采用xml文件,但我的数据是char*

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

我的代码是Linux上的C语言

我是XML领域的新手:)

#包括
大小写入数据(void*缓冲区、大小、大小nmemb、void*userp)
{
printf(“\n punith\n”);
printf(“\n大小%d\n”,大小);
printf(“\n内存%d的编号”,nmemb);
printf(“\n%s\n”,(char*)userp);
printf(“%s”,(char*)缓冲区);
}
内部主(空)
{
卷曲*卷曲;
卷曲编码;
curl=curl_easy_init();
if(curl){
curl\u easy\u setopt(curl,CURLOPT\u WRITEFUNCTION,write\u data);
curl\u easy\u setopt(curl,CURLOPT\u URL,“http://192.168.1.188:80/un.xml");
res=旋度(curl)\u容易执行(curl);
/*总是清理*/
旋度\轻松\清洁(旋度);
}
返回0;
}
我的输出将是

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

ABCD999001
919012345678
1.
1414
100
101
XY

看一看。

首先,您工作的环境是什么?Linux、windows?
你没有提到你看到的API,我觉得很奇怪。可能您看到的只是加载要读取的xml文件?

从GNOME的libxml2的
xmlCtxtReadMemory()
中检查这个是否可能?
cf.

@punith:我不熟悉libcurl,但我认为您需要curl\u easy\u getinfo从响应中获取XML。如果您只想打印XML,我想您可以,因为它是文本。如果需要解析响应,则必须使用您检查过且似乎无法使用的xml解析API更新帖子
<RNQueryRsp>
<RefID>ABCD999001</RefID>
<PN>919012345678</PN>
<Result>1</Result>
<RN>1414</RN>
<DNO>100</DNO>
<NRHN>101</NRHN>
<LSA>XY</LSA>
</RNQueryRsp>