Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Парсинг xml элемента в С. / 20 сообщений из 20, страница 1 из 1
16.11.2017, 11:32
    #39554174
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
Нужно вытащить значение из тэга
автор<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
16.11.2017, 11:59
    #39554198
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
jenya7, можно не изобретать велосипед и воспользоваться библиотекой .
...
Рейтинг: 0 / 0
16.11.2017, 12:01
    #39554201
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
rdb_devjenya7, можно не изобретать велосипед и воспользоваться библиотекой .
да мне всего лишь значение вытащить из тэга. прикручивать ради этого библиотеку? ну не знаю...
...
Рейтинг: 0 / 0
17.11.2017, 23:50
    #39555371
д0кХ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
Приблизительно так :

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

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

btw, в boost есть модуль для разбора xml - property_tree, его можно одного include в проект и парсить xml-ки. Удобно.
...
Рейтинг: 0 / 0
20.11.2017, 22:38
    #39556430
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
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
21.11.2017, 11:35
    #39556659
jenya7
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
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
21.11.2017, 12:41
    #39556734
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
Изопропилrdb_devjenya7, можно не изобретать велосипед и воспользоваться библиотекой .
микроконтроллеры у топикстартера

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

аппаратное декодирование .DOCX еще прикрутить, самое оно будет.
...
Рейтинг: 0 / 0
21.11.2017, 12:57
    #39556759
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
Изопропилмикроконтроллеры у топикстартераИсходники библиотеки в открытом доступе. Ничто не мешает собрать кроссплатформенным GCC под MIPS, к примеру.
...
Рейтинг: 0 / 0
21.11.2017, 12:59
    #39556762
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
dbpatchаппаратное декодирование .DOCX еще прикрутить, самое оно будет.Там не надо ничего декодировать. DOCX, это обычный ZIP архив с XML файлами внутри (можно сменить расширение на ZIP и залезть внутрь).
...
Рейтинг: 0 / 0
21.11.2017, 13:33
    #39556793
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
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
21.11.2017, 13:49
    #39556816
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
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
21.11.2017, 16:23
    #39557002
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
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
22.11.2017, 10:00
    #39557311
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
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
22.11.2017, 13:49
    #39557503
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
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
22.11.2017, 16:10
    #39557635
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
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
22.11.2017, 18:24
    #39557766
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
Модератор: dbpatch и rdb_dev,
Прекращайте бессмысленный спор. Вы оба давно уже ушли темы топика.
...
Рейтинг: 0 / 0
23.11.2017, 23:06
    #39558640
SashaMercury
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсинг xml элемента в С.
jenya7... я хочу делать валидацию что такой тэг существует в документе и он правильно обрамлен скобками.
buf я задаю изначально достаточного размера. хотя такой трюк - char buf[xml_size]; не во всех компайлерах работает, приходиться выделять статический размер, так как я противник malloc в эмбедед.
проверки на правильное обрамление в вашем коде нет
jenya7
Код: plaintext
1.
2.
if (*xml_str == '<')
            break;
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Парсинг xml элемента в С. / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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