Разбор XML-ответа - PullRequest
       21

Разбор XML-ответа

0 голосов
/ 26 ноября 2010

После нажатия на http-сервер я получаю ответ в формате XML.Я использую libcurl для этой цели.Я думал использовать какой-то xml-анализатор, но когда я вижу их API, все они берут xml-файл, но у меня есть данные в виде char *.

Существует ли какой-либо синтаксический анализатор XML, который принимает char * в качестве ввода

Мой код написан на C в Linux.

Я новичок в области 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 ]

1 голос
/ 26 ноября 2010

libxml2's xmlCtxtReadMemory() возможно?срhttp://xmlsoft.org/html/libxml-parser.html#xmlCtxtReadMemory

0 голосов
/ 26 ноября 2010

Прежде всего, в какой среде вы работаете?Linux, Windows?
Вы не упоминаете API, который вы видели, и я нахожу это странным.Может быть, то, что вы видели, было только для загрузки файла XML для чтения?
Проверьте это из GNOME http://xmlsoft.org/

0 голосов
/ 26 ноября 2010

Посмотрите на libxml2 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...