Форум программистов, компьютерный форум CyberForum.ru

Парсинг кодировки в начальном теге xml - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 5.00
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.10.2011, 06:46     Парсинг кодировки в начальном теге xml #1
Есть строка
XML
1
<?xml version="1.0" encoding="UTF-8"?>
,
XML
1
<?xml version="1.0" encoding="ANSI-1251"?>
, или любая другая, начинающаяся на
XML
1
<?xml
. Нульсимвола после неё нет, но границы найдены (два указателя на символы "<" и ">"), найден указатель на пробел после "<?xml". Сравнивать строку с эталонами целиком как то не охота. Как ещё отсюда можно прочитать кодировку? Остальные возможные атрибуты хочу игнорировать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2011, 06:46     Парсинг кодировки в начальном теге xml
Посмотрите здесь:

C++ Кодировки в С++
Парсинг XML C++
C++ Кодировки
C++ Ошибка кодировки?
Создание программы на начальном этапе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
20.10.2011, 08:30     Парсинг кодировки в начальном теге xml #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
char* xml_encoding(char* dst, const char* xmls) {
   const char* ptr = strstr(xmls, "encoding=");
   if(ptr) 
       sscanf(ptr + 10, "%[^\"]%*c", dst);
   return dst;
}
 
int  main(void) {
  char buf[16];
  puts( xml_encoding(buf, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>") );
  puts( xml_encoding(buf, "<?xml version=\"1.0\" encoding=\"ANSI-1251\"?>") );
  getchar();
  return 0;
}
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.10.2011, 12:59  [ТС]     Парсинг кодировки в начальном теге xml #3
xAtom, это ваще к чему? Мне не надо константу пихать в буфер, задача другая.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
20.10.2011, 14:52     Парсинг кодировки в начальном теге xml #4
Цитата Сообщение от taras atavin Посмотреть сообщение
Сравнивать строку с эталонами целиком как то не охота
Искать подстроку с возможной кодировкой.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.10.2011, 19:29  [ТС]     Парсинг кодировки в начальном теге xml #5
Поиска то мне здесь и не видно.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
20.10.2011, 23:01     Парсинг кодировки в начальном теге xml #6
taras atavin, советую присмотреться.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
21.10.2011, 06:40  [ТС]     Парсинг кодировки в начальном теге xml #7
Не вижу. Прокомментируй, пожалуйста.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.10.2011, 09:13     Парсинг кодировки в начальном теге xml #8
Цитата Сообщение от taras atavin Посмотреть сообщение
Не вижу.
Цитата Сообщение от xAtom Посмотреть сообщение
const char* ptr = strstr(xmls, "encoding=");
man strstr
Только я бы не так немного сделал: завёл бы массив с кодировками
C
1
const char * enc[] = { "UTF-8", "WINDOWS-1251", etc... };
проверял бы строку на предмет того, что она начинается с
Цитата Сообщение от taras atavin Посмотреть сообщение
<?xml version="1.0" encoding
а потом в цикле по массиву искал совпадения. Собственно и возвращать при этом можно индекс найденной подстроки в массиве, им же (индексом) и дальше пользоваться...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2011, 13:34     Парсинг кодировки в начальном теге xml
Еще ссылки по теме:

C++ Парсинг xml
Дана матрица A(N, N) набрать программу на начальном уровне C++
Кодировки (ошибки кодировки) в логировании C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
21.10.2011, 13:34     Парсинг кодировки в начальном теге xml #9
Цитата Сообщение от easybudda Посмотреть сообщение
Только я бы не так немного сделал
Я так и предлагал))
Yandex
Объявления
21.10.2011, 13:34     Парсинг кодировки в начальном теге xml
Ответ Создать тему
Опции темы

Текущее время: 12:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru