Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
Нужно вытащить значение из тэга автор<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. но как то громоздко, не эстетично я б сказал. можно как то улучшить? Модератор: Тема перенесена из форума "Программирование". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2017, 11:32 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
jenya7, можно не изобретать велосипед и воспользоваться библиотекой . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2017, 11:59 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
rdb_devjenya7, можно не изобретать велосипед и воспользоваться библиотекой . да мне всего лишь значение вытащить из тэга. прикручивать ради этого библиотеку? ну не знаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2017, 12:01 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
Приблизительно так : sscanf (s, "<LibraryID>%d</LibraryID>", var ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2017, 23:50 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
rdb_devjenya7, можно не изобретать велосипед и воспользоваться библиотекой . микроконтроллеры у топикстартера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2017, 23:53 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
д0кХПриблизительно так : sscanf (s, "<LibraryID>%d</LibraryID>", var ) прикольно. спасибо. вообщето я не пользуюсь sscanf в эмбедед - очень прожорливая функция. но в данном случае у меня линукс на камне. можно попробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 00:28 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
jenya7прикольно. спасибо. вообщето я не пользуюсь sscanf в эмбедед - очень прожорливая функция а можно поиском по строке strstr найти начало тега, конец тега и вырезать внутренности содержимое тега btw, в boost есть модуль для разбора xml - property_tree, его можно одного include в проект и парсить xml-ки. Удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 05:59 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
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. но как то громоздко, не эстетично я б сказал. можно как то улучшить? Модератор: Тема перенесена из форума "Программирование". В первом приближении: 0. Передавайте указатели char на const, а не указатели на char. Кроме value 1. Мне кажется, что лучше использовать auto вместо uint32_t в вашем случае 2. Код: plaintext 1. 2. 3. 4. Для чего этот кусок? Что если размер el_size больше buf? Для таким способом в buf вы дописываете тег? Почему сразу бы не искать el_name? Странно. 3. Код: plaintext 1. 2. Возможно это текст внутри тега, а не "terminating tag" 4. Судя по всему данный код, если бы работал корректно, анализировал бы только одну пару тегов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2017, 22:38 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
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. но как то громоздко, не эстетично я б сказал. можно как то улучшить? Модератор: Тема перенесена из форума "Программирование". В первом приближении: 0. Передавайте указатели char на const, а не указатели на char. Кроме value 1. Мне кажется, что лучше использовать auto вместо uint32_t в вашем случае 2. Код: plaintext 1. 2. 3. 4. Для чего этот кусок? Что если размер el_size больше buf? Для таким способом в buf вы дописываете тег? Почему сразу бы не искать el_name? Странно. 3. Код: plaintext 1. 2. Возможно это текст внутри тега, а не "terminating tag" 4. Судя по всему данный код, если бы работал корректно, анализировал бы только одну пару тегов. Можно конечно имя тэга передавать вместе со скобками, но это как то, ну не очень профессионально, как мне кажется. А искать просто по имени - я хочу делать валидацию что такой тэг существует в документе и он правильно обрамлен скобками. buf я задаю изначально достаточного размера. хотя такой трюк - char buf[xml_size]; не во всех компайлерах работает, приходиться выделять статический размер, так как я противник malloc в эмбедед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 11:35 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
Изопропилrdb_devjenya7, можно не изобретать велосипед и воспользоваться библиотекой . микроконтроллеры у топикстартера микроконтроллеры и XML? аппаратное декодирование .DOCX еще прикрутить, самое оно будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 12:41 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
Изопропилмикроконтроллеры у топикстартераИсходники библиотеки в открытом доступе. Ничто не мешает собрать кроссплатформенным GCC под MIPS, к примеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 12:57 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
dbpatchаппаратное декодирование .DOCX еще прикрутить, самое оно будет.Там не надо ничего декодировать. DOCX, это обычный ZIP архив с XML файлами внутри (можно сменить расширение на ZIP и залезть внутрь). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 12:59 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
rdb_devdbpatchаппаратное декодирование .DOCX еще прикрутить, самое оно будет.Там не надо ничего декодировать. DOCX, это обычный ZIP архив с XML файлами внутри (можно сменить расширение на ZIP и залезть внутрь). пионерам нужно объяснять, что декодирования не требует только один формат - бинарный, где структура на C/C++ напрямую мапится в память, сеть и на диск, и обращение к int происходит в нативном формате? (про ntoi можно забыть - мы в 21-м веке, спарки прочие биг эндианы все попымерли) а XML/JSON/YAML/etc - все это требует парсинга, т.е. декодирования (encode/decode), что глючно, затратно и даже негарантировано по времени говоря проще - уровень микроконтроллера априори не предусматривает подобную ерунду с текстовыми форматами - все преобразования из XML в бинарные форматы ему должен делать UI/frontend, где памяти и CPU ресурсов немеряно, а гарантированого времени реакции не требуется. не контроллерная эта задача, XML жевать этож простые правила, нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 13:33 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
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этож простые правила, нет?Возможно... Где-то в параллельной реальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 13:49 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
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этож простые правила, нет?Возможно... Где-то в параллельной реальности. В текущей реальности ничего нового - у пионеров максимализм и знания как всегда в экстремумах. В смысле самомнение в максимуме, ну а знания ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2017, 16:23 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
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пропущено... Возможно... Где-то в параллельной реальности.В текущей реальности ничего нового - у пионеров максимализм и знания как всегда в экстремумах. В смысле самомнение в максимуме, ну а знания ... :)Просто оставлю это тут, чтоб ты сам не забыл свои же слова. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 10:00 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
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 еще актуален где-то, кроме как хобби - может делать уже что угодно, пытаться дальше дискутировать с генератором белого шума как минимум странно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 13:49 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
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 Последний экземпляр можно частенько разглядеть на видео с военных учений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 16:10 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
Модератор: dbpatch и rdb_dev, Прекращайте бессмысленный спор. Вы оба давно уже ушли темы топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2017, 18:24 |
|
||
|
Парсинг xml элемента в С.
|
|||
|---|---|---|---|
|
#18+
jenya7... я хочу делать валидацию что такой тэг существует в документе и он правильно обрамлен скобками. buf я задаю изначально достаточного размера. хотя такой трюк - char buf[xml_size]; не во всех компайлерах работает, приходиться выделять статический размер, так как я противник malloc в эмбедед. проверки на правильное обрамление в вашем коде нет jenya7 Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2017, 23:06 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39558640&tid=2018037]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 197ms |

| 0 / 0 |
