2010-11-26 6 views
0

Après avoir tapé sur un serveur http, j'obtiens une réponse au format XML. J'utilise libcurl dans ce but. Je pensais utiliser un analyseur XML, mais quand je vois leur API, ils prennent tous un fichier XML mais j'ai les données dans un char *.Analyse de la réponse XML

est-il un analyseur XML disponible qui prend char * comme entrée

Mon code est en C sous Linux.

Je suis un débutant au domaine 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; 
} 

Ma sortie sera

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

Répondre

0

Tout d'abord, quel est l'environnement dans lequel vous travaillez? Linux, Windows?
Vous ne mentionnez pas les apis que vous avez vus, et je trouve cela étrange. Peut-être ce que vous avez vu était seulement pour charger le fichier XML à lire?
Cochez cette case de GNOME http://xmlsoft.org/

+0

Désolé, je travaille sur Linux. – punith

+0

@punith: Je ne suis pas familier avec libcurl mais je pense que vous avez besoin de curl_easy_getinfo pour obtenir le XML de la réponse.Si vous voulez juste imprimer le xml, je suppose que vous le pouvez, puisqu'il s'agit de texte. Si vous avez besoin d'analyser la réponse, vous devez mettre à jour le message avec les apis d'analyse XML que vous avez vérifiés et qui vous semblaient inutilisables – Cratylus