E
elRay
всем хай,
делаю простенький парсер xml файла для своих целей,но возникли некоторые трудности
для начала пытаюсь сделать вывод древа тэгов хмл файла как он сам по себе устроен, <октрый тэг> </закрытый тэг>
по идеи, как задумывалось, должен вывестись открывающий тэг ,пробел и закрывающий
в итоге работает,но появляется непонятный мне тэг. Слеп,никак не могу увидеть в чём промах, но в результате
и далее также наблюдается такое, часть как надо,а другая с эхом
структура файла xml:
<CATALOG>
<PLANT>
<COMMON>Bloodroot</COMMON>
<BOTANICAL>Sanguinaria canadensis</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$2.44</PRICE>
<AVAILABILITY>031599</AVAILABILITY>
</PLANT>
</CATALOG>
задумывалось,чтобы вывелись тэги так:
Помогите с решение конкретной проблемы ,откуда этот лишний тэг взялся и почему?
пишу в Dev-C++, с си++ второй день только знаком,был признателен за простое объяснение
делаю простенький парсер xml файла для своих целей,но возникли некоторые трудности
для начала пытаюсь сделать вывод древа тэгов хмл файла как он сам по себе устроен, <октрый тэг> </закрытый тэг>
Код:
char row[1500];
string tag;
int a;
int b;
while (!feof(fp))
{
fgets(row, 255, fp);
for (a=1;a<=255;a++)
{
//если открытый тэг первая скоба есть и нет бэкслэша после этого
if (row[a]=='<' && row[a+1]!='/')
{
tag="";
//извлекаю название тэга между позиция "<" есть, и пока не наткнусь на ">" записывать в tag
for (b=a+1;b<=255;b++)
{
if (row[b]=='>') { break;}
if (row[b]!='>') { tag+=row[b];}
}
printf("\n");
printf(tag.c_str());
printf(" ");
}
//если закрытый тэг первая скоба есть и есть бэкслэш после этого "<"
if (row[a]=='<' && row[a+1]=='/')
{
tag="";
//извлекаю название тэга между позиция "</f" есть, и пока не наткнусь на ">" записывать в tag
for (b=a+2;b<=255;b++)
{
if (row[b]=='>') { break;}
if (row[b]!='>') { tag+=row[b];}
}
printf(tag.c_str());
printf("\n");
}
}
}
по идеи, как задумывалось, должен вывестись открывающий тэг ,пробел и закрывающий
в итоге работает,но появляется непонятный мне тэг. Слеп,никак не могу увидеть в чём промах, но в результате
Код:
CATALOG
PLANT
COMMON COMMON
BOTANICAL BOTANICAL
ZONE ZONE
BOTANICAL - откуда это???
LIGHT LIGHT
BOTANICAL - и это?
PRICE PRICE
BOTANICAL и это?
AVAILABILITY AVAILABILITY
....
и далее также наблюдается такое, часть как надо,а другая с эхом
структура файла xml:
<CATALOG>
<PLANT>
<COMMON>Bloodroot</COMMON>
<BOTANICAL>Sanguinaria canadensis</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$2.44</PRICE>
<AVAILABILITY>031599</AVAILABILITY>
</PLANT>
</CATALOG>
задумывалось,чтобы вывелись тэги так:
Код:
CATALOG
PLANT
COMMON COMMON
BOTANICAL BOTANICAL
ZONE ZONE
LIGHT LIGHT
PRICE PRICE
AVAILABILITY AVAILABILITY
Помогите с решение конкретной проблемы ,откуда этот лишний тэг взялся и почему?
пишу в Dev-C++, с си++ второй день только знаком,был признателен за простое объяснение