powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Парсинг xml элемента в С.
20 сообщений из 20, страница 1 из 1
Парсинг xml элемента в С.
    #39554174
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно вытащить значение из тэга
автор<LibraryID>4</LibraryID>

сделал так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
uint32_t  XML_PARSER_GetElementValue(char *xml_str, char* el_name, char *value)
{
    uint32_t xml_size = strlen(xml_str);
    uint32_t el_size = strlen(el_name);
    uint32_t position;
    char buf[xml_size];
    char *pchr;
    
   //find the start of the element
    memset(buf, '\0', el_size+4); 
    strcat(buf,"<");
    strcat(buf, el_name);
    strcat(buf,">");
    
    pchr = strstr(xml_str, buf);
    if(pchr == NULL) return 0;
    
    //find the start address of the value
    position = pchr - xml_str;
    xml_str += position + el_size +2;
   
    while (*xml_str)
    {
        *value++ = *xml_str++;
        
        //terminating tag found
        if (*xml_str == '<')
            break;
    }
    
    *value = '\0';
    
    return 1;
}


но как то громоздко, не эстетично я б сказал. можно как то улучшить?

Модератор: Тема перенесена из форума "Программирование".
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39554198
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7, можно не изобретать велосипед и воспользоваться библиотекой .
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39554201
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devjenya7, можно не изобретать велосипед и воспользоваться библиотекой .
да мне всего лишь значение вытащить из тэга. прикручивать ради этого библиотеку? ну не знаю...
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39555371
д0кХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приблизительно так :

sscanf (s, "<LibraryID>%d</LibraryID>", var )
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39555372
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devjenya7, можно не изобретать велосипед и воспользоваться библиотекой .
микроконтроллеры у топикстартера
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39555860
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
д0кХПриблизительно так :

sscanf (s, "<LibraryID>%d</LibraryID>", var )
прикольно. спасибо. вообщето я не пользуюсь sscanf в эмбедед - очень прожорливая функция. но в данном случае у меня линукс на камне. можно попробовать.
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39555905
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7прикольно. спасибо. вообщето я не пользуюсь sscanf в эмбедед - очень прожорливая функция
а можно поиском по строке strstr найти начало тега, конец тега и вырезать внутренности содержимое тега

btw, в boost есть модуль для разбора xml - property_tree, его можно одного include в проект и парсить xml-ки. Удобно.
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39556430
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7Нужно вытащить значение из тэга
автор<LibraryID>4</LibraryID>

сделал так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
uint32_t  XML_PARSER_GetElementValue(char *xml_str, char* el_name, char *value)
{
    uint32_t xml_size = strlen(xml_str);
    uint32_t el_size = strlen(el_name);
    uint32_t position;
    char buf[xml_size];
    char *pchr;
    
   //find the start of the element
    memset(buf, '\0', el_size+4); 
    strcat(buf,"<");
    strcat(buf, el_name);
    strcat(buf,">");
    
    pchr = strstr(xml_str, buf);
    if(pchr == NULL) return 0;
    
    //find the start address of the value
    position = pchr - xml_str;
    xml_str += position + el_size +2;
   
    while (*xml_str)
    {
        *value++ = *xml_str++;
        
        //terminating tag found
        if (*xml_str == '<')
            break;
    }
    
    *value = '\0';
    
    return 1;
}


но как то громоздко, не эстетично я б сказал. можно как то улучшить?

Модератор: Тема перенесена из форума "Программирование".
В первом приближении:
0. Передавайте указатели char на const, а не указатели на char. Кроме value
1. Мне кажется, что лучше использовать auto вместо uint32_t в вашем случае
2.
Код: plaintext
1.
2.
3.
4.
memset(buf, '\0', el_size+4); 
    strcat(buf,"<");
    strcat(buf, el_name);
    strcat(buf,">");



Для чего этот кусок? Что если размер el_size больше buf? Для таким способом в buf вы дописываете тег? Почему сразу бы не искать el_name? Странно.

3.
Код: plaintext
1.
2.
//terminating tag found
        if (*xml_str == '<')



Возможно это текст внутри тега, а не "terminating tag"

4. Судя по всему данный код, если бы работал корректно, анализировал бы только одну пару тегов.
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39556659
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SashaMercuryjenya7Нужно вытащить значение из тэга
пропущено...

сделал так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
uint32_t  XML_PARSER_GetElementValue(char *xml_str, char* el_name, char *value)
{
    uint32_t xml_size = strlen(xml_str);
    uint32_t el_size = strlen(el_name);
    uint32_t position;
    char buf[xml_size];
    char *pchr;
    
   //find the start of the element
    memset(buf, '\0', el_size+4); 
    strcat(buf,"<");
    strcat(buf, el_name);
    strcat(buf,">");
    
    pchr = strstr(xml_str, buf);
    if(pchr == NULL) return 0;
    
    //find the start address of the value
    position = pchr - xml_str;
    xml_str += position + el_size +2;
   
    while (*xml_str)
    {
        *value++ = *xml_str++;
        
        //terminating tag found
        if (*xml_str == '<')
            break;
    }
    
    *value = '\0';
    
    return 1;
}


но как то громоздко, не эстетично я б сказал. можно как то улучшить?

Модератор: Тема перенесена из форума "Программирование".
В первом приближении:
0. Передавайте указатели char на const, а не указатели на char. Кроме value
1. Мне кажется, что лучше использовать auto вместо uint32_t в вашем случае
2.
Код: plaintext
1.
2.
3.
4.
memset(buf, '\0', el_size+4); 
    strcat(buf,"<");
    strcat(buf, el_name);
    strcat(buf,">");



Для чего этот кусок? Что если размер el_size больше buf? Для таким способом в buf вы дописываете тег? Почему сразу бы не искать el_name? Странно.

3.
Код: plaintext
1.
2.
//terminating tag found
        if (*xml_str == '<')



Возможно это текст внутри тега, а не "terminating tag"

4. Судя по всему данный код, если бы работал корректно, анализировал бы только одну пару тегов.
Можно конечно имя тэга передавать вместе со скобками, но это как то, ну не очень профессионально, как мне кажется. А искать просто по имени - я хочу делать валидацию что такой тэг существует в документе и он правильно обрамлен скобками.
buf я задаю изначально достаточного размера. хотя такой трюк - char buf[xml_size]; не во всех компайлерах работает, приходиться выделять статический размер, так как я противник malloc в эмбедед.
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39556734
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилrdb_devjenya7, можно не изобретать велосипед и воспользоваться библиотекой .
микроконтроллеры у топикстартера

микроконтроллеры и XML?

аппаратное декодирование .DOCX еще прикрутить, самое оно будет.
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39556759
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилмикроконтроллеры у топикстартераИсходники библиотеки в открытом доступе. Ничто не мешает собрать кроссплатформенным GCC под MIPS, к примеру.
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39556762
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchаппаратное декодирование .DOCX еще прикрутить, самое оно будет.Там не надо ничего декодировать. DOCX, это обычный ZIP архив с XML файлами внутри (можно сменить расширение на ZIP и залезть внутрь).
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39556793
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devdbpatchаппаратное декодирование .DOCX еще прикрутить, самое оно будет.Там не надо ничего декодировать. DOCX, это обычный ZIP архив с XML файлами внутри (можно сменить расширение на ZIP и залезть внутрь).

пионерам нужно объяснять, что декодирования не требует только один формат - бинарный, где структура на C/C++ напрямую мапится в память, сеть и на диск, и обращение к int происходит в нативном формате? (про ntoi можно забыть - мы в 21-м веке, спарки прочие биг эндианы все попымерли)

а XML/JSON/YAML/etc - все это требует парсинга, т.е. декодирования (encode/decode), что глючно, затратно и даже негарантировано по времени

говоря проще - уровень микроконтроллера априори не предусматривает подобную ерунду с текстовыми форматами - все преобразования из XML в бинарные форматы ему должен делать UI/frontend, где памяти и CPU ресурсов немеряно, а гарантированого времени реакции не требуется. не контроллерная эта задача, XML жевать

этож простые правила, нет?
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39556816
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchпионерам нужно объяснять, что декодирования не требует только один формат - бинарный, где структура на C/C++ напрямую мапится в память, сеть и на диск, и обращение к int происходит в нативном формате?)Пионерам надо объяснять, чем отличается машинозависимый бинарный формат любых данных (к примеру, DBF) от формата на языках гипертекстовой разметки?

dbpatch(про ntoi можно забыть - мы в 21-м веке, спарки прочие биг эндианы все попымерли)А мужики-то из IBM и SGI не знают... Сильно огорчатся.

dbpatchа XML/JSON/YAML/etc - все это требует парсинга, т.е. декодирования (encode/decode), что глючно, затратно и даже негарантировано по времениПарсить != декодировать. Как ты будешь "парсить" UU или BASE64?

dbpatchговоря проще - уровень микроконтроллера априори не предусматривает подобную ерунду с текстовыми форматами - все преобразования из XML в бинарные форматы ему должен делать UI/frontend, где памяти и CPU ресурсов немеряно, а гарантированого времени реакции не требуется. не контроллерная эта задача, XML жеватьВ подавляющем большинстве современных роутеров стоит контроллер MIPS, однако, это не мешает им крутить операционную систему, кучу служб (вплоть до OpenVPN), а этим службам пользоваться настроечными файлами xml, разбирая их с помощью алгоритмов популярных библиотек, таких как libxml.

dbpatchэтож простые правила, нет?Возможно... Где-то в параллельной реальности.
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39557002
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devdbpatchпионерам нужно объяснять, что декодирования не требует только один формат - бинарный, где структура на C/C++ напрямую мапится в память, сеть и на диск, и обращение к int происходит в нативном формате?)Пионерам надо объяснять, чем отличается машинозависимый бинарный формат любых данных (к примеру, DBF) от формата на языках гипертекстовой разметки?
DBF это вообще-то машинонезависимый формат, да, прикольно, что тебе это приходится объяснять.
Изучи сначала, КАК в нем хранятся пользовательские цифры или даты (берем dBASE III, а не всякие FoxPro и прочие расширения), будешь невероятно удивлен, уверен.
Чтоб долго не гуглить, вот тынц: http://www.autopark.ru/ASBProgrammerGuide/DBFSTRUC.HTM


rdb_devdbpatch(про ntoi можно забыть - мы в 21-м веке, спарки прочие биг эндианы все попымерли)А мужики-то из IBM и SGI не знают... Сильно огорчатся.
SGI давно и плотно сидит на x64
Linux для Power7/8 выпускается только в Low-Endian формате: https://www.ibm.com/developerworks/library/l-power-little-endian-faq-trs/index.html

Big-Endian сохранился в лишь для Solaris, HP-UX и AIX, но даже там стагнирует уже который год подряд, это все живет
в корпоративе просто в режиме обратной совместимости и по возможности переводится на x64.

яж и говорю - мы в 21-м веке, не в 20-м. big endian фактически мертв, его доля стремится к нулю.

rdb_devdbpatchа XML/JSON/YAML/etc - все это требует парсинга, т.е. декодирования (encode/decode), что глючно, затратно и даже негарантировано по времениПарсить != декодировать. Как ты будешь "парсить" UU или BASE64?
Ну и к чему это громкая дегазация из лужи?

Распарсенное число из XML формата все равно нужно будет декодировать из строки в бинарный int.
И да, гугли XML encode, XML decode, ежели сумлящейся в существовании таких понятий

rdb_devdbpatchговоря проще - уровень микроконтроллера априори не предусматривает подобную ерунду с текстовыми форматами - все преобразования из XML в бинарные форматы ему должен делать UI/frontend, где памяти и CPU ресурсов немеряно, а гарантированого времени реакции не требуется. не контроллерная эта задача, XML жеватьВ подавляющем большинстве современных роутеров стоит контроллер MIPS, однако, это не мешает им крутить операционную систему, кучу служб (вплоть до OpenVPN), а этим службам пользоваться настроечными файлами xml, разбирая их с помощью алгоритмов популярных библиотек, таких как libxml.
Начнем с того, что MIPS это микропроцессор, а не микроконтроллер.
Объяснять отличие мне уже лениво, сходи в википедию почитай, там вполне доходчиво описано отличие.

И да, всякий микроконтроллер имеет микропроцессор, не всякий микропроцессор может считаться микроконтроллером.
А SOHO раутер (которые в массе уже на ARM-е, см. openwrt базу данных) это ну никак не микроконтроллер, тебя обманули.

rdb_devdbpatchэтож простые правила, нет?Возможно... Где-то в параллельной реальности.

В текущей реальности ничего нового - у пионеров максимализм и знания как всегда в экстремумах.
В смысле самомнение в максимуме, ну а знания ... :)
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39557311
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchDBF это вообще-то машинонезависимый формат, да, прикольно, что тебе это приходится объяснять.Вообще-то, этот формат, как минимум, рассчитан на восьмибитовый байт - октет. История знает аппаратные комплексы информационных систем и с отличным от восьми количеством бит в байте, как в большую, так и в меньшую сторону. Но ты, как я погляжу, не в курсе.

dbpatchИзучи сначала, КАК в нем хранятся пользовательские цифры или даты (берем dBASE III, а не всякие FoxPro и прочие расширения), будешь невероятно удивлен, уверен.
Чтоб долго не гуглить, вот тынц: http://www.autopark.ru/ASBProgrammerGuide/DBFSTRUC.HTM Спасибо, конечно, но нет никакого желания вспоминать в подробностях то, что осваивал более 20 лет тому назад.

dbpatchSGI давно и плотно сидит на x64Imagination Technologies (MIPS)? МЦСТ (SPARC)? IBM/Apple/Motorola (PowerPC)?

dbpatchLinux для Power7/8 выпускается только в Low-Endian формате: https://www.ibm.com/developerworks/library/l-power-little-endian-faq-trs/index.html Неужели? Зайди в репозитории CentOS7 (форк RHEL) и убедись в обратном - свежие сборки под ppc64 и ppc64le.
Также рекомендую заглянуть в репозитории FreeBSD и OpenBSD, чтобы увидеть там свежие сборки под SPARC'и.

dbpatchBig-Endian сохранился в лишь для Solaris, HP-UX и AIX, но даже там стагнирует уже который год подряд, это все живет
в корпоративе просто в режиме обратной совместимости и по возможности переводится на x64.
яж и говорю - мы в 21-м веке, не в 20-м. big endian фактически мертв, его доля стремится к нулю.Что за идеальный мирок ты себе придумал и наслаждаешься жизнью в нём?

dbpatchrdb_devпропущено...
Парсить != декодировать. Как ты будешь "парсить" UU или BASE64?
Ну и к чему это громкая дегазация из лужи?Нечем возразить и решил слиться?

dbpatchРаспарсенное число из XML формата все равно нужно будет декодировать из строки в бинарный int.
И да, гугли XML encode, XML decode, ежели сумлящейся в существовании таких понятийПрежде чем бросаться подобными заявлениями, рекомендую, таки, открыть спецификацию XML и проштудировать матчасть в контексте упоминания слов encode/decode.

dbpatchrdb_devпропущено...
В подавляющем большинстве современных роутеров стоит контроллер MIPS, однако, это не мешает им крутить операционную систему, кучу служб (вплоть до OpenVPN), а этим службам пользоваться настроечными файлами xml, разбирая их с помощью алгоритмов популярных библиотек, таких как libxml.
Начнем с того, что MIPS это микропроцессор, а не микроконтроллер.
Объяснять отличие мне уже лениво, сходи в википедию почитай, там вполне доходчиво описано отличие.Да неужели? Может обоснуешь - почему это вдруг микроконтроллер с интегрированными ОЗУ, ПЗУ и кучей интерфейсов стал, вдруг, микропроцессором?
Сходи, почитай, найди... Бремя доказательства лежит на утверждающем. Утверждаешь - обосновывай!


dbpatchИ да, всякий микроконтроллер имеет микропроцессор, не всякий микропроцессор может считаться микроконтроллером.
А SOHO раутер (которые в массе уже на ARM-е, см. openwrt базу данных) это ну никак не микроконтроллер, тебя обманули.Серьезно? Можешь сравнить доли рынков SOHO роутеров на базе MIPS и ARM... И, на всякий случай, почитай, что из себя представляет широко распространенный в сетевых решениях контроллер Realtek.


dbpatchrdb_devпропущено...
Возможно... Где-то в параллельной реальности.В текущей реальности ничего нового - у пионеров максимализм и знания как всегда в экстремумах.
В смысле самомнение в максимуме, ну а знания ... :)Просто оставлю это тут, чтоб ты сам не забыл свои же слова. :)
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39557503
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devdbpatchDBF это вообще-то машинонезависимый формат, да, прикольно, что тебе это приходится объяснять.Вообще-то, этот формат, как минимум, рассчитан на восьмибитовый байт - октет. История знает аппаратные комплексы информационных систем и с отличным от восьми количеством бит в байте, как в большую, так и в меньшую сторону. Но ты, как я погляжу, не в курсе.
Ой да ладно заливать-то. Сможешь назвать хоть одну машину, с числом битов в байте более/менее 8-ми, из немузейных экспонатов?

rdb_devСпасибо, конечно, но нет никакого желания вспоминать в подробностях то, что осваивал более 20 лет тому назад..
Т.е. твой биологический возраст уже явно более 35 лет?

rdb_devdbpatchSGI давно и плотно сидит на x64Imagination Technologies (MIPS)? МЦСТ (SPARC)? IBM/Apple/Motorola (PowerPC)?

MIPS давно Low-endian, все актуальные линуксы под него только в el редакциях, PowerPC давно мертв.


rdb_devdbpatchLinux для Power7/8 выпускается только в Low-Endian формате: https://www.ibm.com/developerworks/library/l-power-little-endian-faq-trs/index.html Неужели? Зайди в репозитории CentOS7 (форк RHEL) и убедись в обратном - свежие сборки под ppc64 и ppc64le.
ppc64le - это как раз low-endian. ppc64 - это сборка энтузиастами, официально RedHad это в новых редакциях уже не поддерживает, как и x86, ты ссылку то выше почитай, там сказано почему

rdb_devТакже рекомендую заглянуть в репозитории FreeBSD и OpenBSD, чтобы увидеть там свежие сборки под SPARC'и.

Зачем это делать? Это все неживые проекты, которыми пользуются 3.5 анонимуса.

rdb_devdbpatchBig-Endian сохранился в лишь для Solaris, HP-UX и AIX, но даже там стагнирует уже который год подряд, это все живет
в корпоративе просто в режиме обратной совместимости и по возможности переводится на x64.
яж и говорю - мы в 21-м веке, не в 20-м. big endian фактически мертв, его доля стремится к нулю.Что за идеальный мирок ты себе придумал и наслаждаешься жизнью в нём?
Это обычный современный мир, все тренды и графики лежат в интернетах в свободном доступе. Попробуй погуглить картинки по словам server cpu os market share

rdb_devdbpatchпропущено...
Ну и к чему это громкая дегазация из лужи?Нечем возразить и решил слиться?
Я не знаю, зачем ты решил слиться.


rdb_devнеужели? Может обоснуешь - почему это вдруг микроконтроллер с интегрированными ОЗУ, ПЗУ и кучей интерфейсов стал, вдруг, микропроцессором?
Сходи, почитай, найди... Бремя доказательства лежит на утверждающем. Утверждаешь - обосновывай!
Ты хоть бы википедию почитал, господи. Микроконтроллер - это нечто, с микропроцессором, ОЗУ и прочими шинами.
Физически всякий микроконтроллер есть суть микропроцессор, но со всеми остальными составляющими, часто исполнен как SoC, что тут не так? Существуют микроконтроллеры без микропроцессоров? Да неужели?

И к никакое бремя на мне не лежит - я не могу тебя заставить пойти, и почитать ту-же википедию.

rdb_devdbpatchИ да, всякий микроконтроллер имеет микропроцессор, не всякий микропроцессор может считаться микроконтроллером.
А SOHO раутер (которые в массе уже на ARM-е, см. openwrt базу данных) это ну никак не микроконтроллер, тебя обманули.Серьезно? Можешь сравнить доли рынков SOHO роутеров на базе MIPS и ARM... И, на всякий случай, почитай, что из себя представляет широко распространенный в сетевых решениях контроллер Realtek.

Сетевой контроллер Realtek? В смысле Network Controller? Ты не понимаешь разницу между микроконтроллером и сетевым контроллером? Ой.

Ну давай еще про CPU vs GPU vs NPU поговорим?
https://en.wikipedia.org/wiki/Network_processor

Серьезно, сходи почитай про определение микроконтроллер, что входит в их число, что не входит.... Не нужно? Зачем?

rdb_devdbpatchпропущено...
В текущей реальности ничего нового - у пионеров максимализм и знания как всегда в экстремумах.
В смысле самомнение в максимуме, ну а знания ... :)Просто оставлю это тут, чтоб ты сам не забыл свои же слова. :)
Да ставь что хочешь, человек, который всерьез утверждает, что PowerPC и FreeBSD/Sparc еще актуален где-то, кроме как хобби - может делать уже что угодно, пытаться дальше дискутировать с генератором белого шума как минимум странно.
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39557635
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatch, сними шоры под названием "Intel - наше фсё!" и перестань ёрзать по жиже!
Помимо хомяков и офисного планктона с вендой, есть еще Министерство обороны и огромный рынок промышленной автоматизации, где практически повсеместно живёт наследие big-endian в виде протоколов типа Modbus, контроллеров MIPS, Atmel AVR с проприетарными прошивками и т.п. Я уж не говорю про наследие BE в заголовке пакета IP протокола, про способ хранения чисел в JVM и про Byte-Order Mark, предусмотренный в том же XML...
Современные SPARC'и:
http://www.mcst.ru/r_1000
http://mcst.ru/mpu-mpc
http://ineum.ru/zashhishhennyj-noutbuk-nt-r1000
Последний экземпляр можно частенько разглядеть на видео с военных учений.
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39557766
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: dbpatch и rdb_dev,
Прекращайте бессмысленный спор. Вы оба давно уже ушли темы топика.
...
Рейтинг: 0 / 0
Парсинг xml элемента в С.
    #39558640
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7... я хочу делать валидацию что такой тэг существует в документе и он правильно обрамлен скобками.
buf я задаю изначально достаточного размера. хотя такой трюк - char buf[xml_size]; не во всех компайлерах работает, приходиться выделять статический размер, так как я противник malloc в эмбедед.
проверки на правильное обрамление в вашем коде нет
jenya7
Код: plaintext
1.
2.
if (*xml_str == '<')
            break;
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Парсинг xml элемента в С.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]