imho.ws |
![]() |
![]() |
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
![]() |
# 1 |
Guest
Сообщения: n/a
|
XML, использование недопустимого символа в строке
Добрый день!
Есть XML-файл, представляет собой конфигурационный файл, в нем есть параметр <user name="Шагин О.В." login="O_Shagin" password="347f3<:[6y" group="default"> Так вот парсер ругается на использование недопустимого символа "<" в значении пароля! Как же прочесть этот файл? Заранее спасибо! |
![]() |
# 3 |
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
тут однозначно надо CDATA использовать - с хеше что угодно может появиться - и <, и & - да мало ли что там сгенерится
![]()
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
![]() |
![]() |
# 4 |
Junior Member
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Досттаточно просто заменять на лету "запрещенные" в XML символы на их аналоги (&...) при записи и обратно при чтении.
Символов там не больше 5 штук разных.
__________________
Дураки не динозавры - они не вымрут... |
![]() |
![]() |
# 5 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 481
![]() |
Можно сделать ещё правильнее: хранить всё содержимое поля в кодированном/шифрованном виде. Например, использовать кодировку MIME.
При этом получаем бонус - даже если файл попадёт в руки кому не следует, не каждый ламер прочитает пароль. А если систему кодирования/декодирования придумать самому или хотя бы модифицировать...
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
![]() |
![]() |
# 7 |
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
тогда плохо
Или надо катать баг-репорт на софтину, или извращаться, пытаясь обойти этот баг. Потому что это ошибка разработчика. Просто не до тестировали до конца - на некоторых паролях наверняка все ок, а некоторые дают такие вот побочные эффекты. Тот XML, что ты привел - это не well-formed-XML, а простой текстовый файл (если быть формально точным). Для его обработки XML-функции неприменимы - надо парсить руками ![]()
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
![]() |
![]() |
# 9 |
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
сомневаюсь
![]() по той простой причине, что по стандарту, в "" НЕ МОГУТ быть символы < и & - соответственно, вряд ли в природе есть парсеры, которые будут читать неправильный XML. в твоем конкретном случае (раз нельзя поправить исходный баг) - мне лично видится только одно решение - перед парсингом заменять все символы в кавычках. Возможно, гуру подскажут правильный регэксп (я в них не силен, сорри)
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
![]() |
![]() |
# 10 | ||
Full Member
Регистрация: 11.12.2002
Сообщения: 864
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
а что, в пароле не может быть двойной кавычки ?
допустим кто-то такой умный как я сделал себе пароль Цитата:
Цитата:
Производителю "сторонней софтины" бить по ушам, пока не сделает патч. |
||
![]() |
![]() |
# 11 | ||
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
тогда должно быть
Цитата:
Цитата:
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
||
![]() |
![]() |
# 13 |
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
похоже, тут был не парсер, а просто
print('<user name="$name" login="$login" password="$pass" group="$group">'); или что-то в этом роде ![]()
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
![]() |