Имеем такой xml документ:
***********************************************
<?xml version="1.0" encoding="ISO-8859-1" ?>
<x y="yy" z="zz">
<y>yyyy</y>
<z>zzzz</z>
</x>
***********************************************
Имеем таку программку на C:
***********************************************
#include <stdio.h>
#include <expat.h>
#define BUFFSIZE 1024
char Buff[BUFFSIZE];
int Depth;
XML_Parser first;
static void XMLCALL start(void *data, const char *tag, const char **attr)
{
int i;
for (i = 0; i < Depth; i++) printf(" |->");
printf("tag=%s userdata=%s\n", tag, (char*)data);
for (i = 0; attr[i]; i += 2)
{
printf("\tattrib %s='%s'\n", attr[i], attr[i + 1]);
}
Depth++;
}
static void XMLCALL end(void *userdata, const char *tag)
{
Depth--;
}
int main (void)
{
int done, len;
first = XML_ParserCreate(NULL);
XML_SetElementHandler(first, start, end);
do
{
len = fread(Buff, 1, BUFFSIZE, stdin);
done = feof(stdin);
XML_Parse(first, Buff, len, done);
} while (!done);
XML_ParserFree(first);
return 0;
}
****************************************************************
Что нам надо: Нам надо получить собственно наименование тагов(Получили, таги выводит как надо), нам нужно получить параметры у тагов если они есть(Тоже разобрался - несложно).
Нам надо получить собственно данные которые заключены между тагов.
Тут я заебался. Ну не едут лыжи и всё... Где только уже не спрашивал - такое впечатление что никто и никогда не парсил xml на С.
Местные гуру - будьте так любезны, объясните что тут не так? Почему
*data всегда возврашает NULL???? Буду крайне благодарен если приведёте пример, в котором на stdout выводится содержимое между тагов...... (С использование expat понятное дело :)
Ответ на:
комментарий
от Evgeny_I
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [php5][expat] где мои entity? (2008)
- Форум Проблема с деструктором класса (2002)
- Форум GLib проблема с потоками GMainLoop (2014)
- Форум Ошибка при компиляции (2015)
- Форум покритикуйте функцию (2009)
- Форум glib-2.22 segfault после main (2016)
- Форум Вывести содержание бинарного файла (2013)
- Форум nfqueue вытащить данные пакете (2012)
- Форум FUSE (2013)
- Форум Всё ли нормально в символьном устройстве? (2017)