eugef
Новичок
Как хранить текстовые данные содержащие теги?
У меня такая ситуация - я в xml файле передаю текст введенный пользователем.Текст может содержать html теги, а также быть просто числами! Текст я передаю так:
Однако просто запихнуть текст нельзя - мешает наличие тегов!
1. Возникла идея хранить текст в значении аттрибута:
и как-то заменять двойные кавычки в тексте и возвращать их обратно. Однако нигде при передаче большого текста не видел чтоб так делали - значит есть причина? Объясните!
2. Следующий вариант - заменять "плохие" символы на их мнемоники или коды, но тогда непонятно как поступать с мнемониками, которые тоже будут в исходном тексте - ведь обратная замена поменяет и их на "плохие" символы!
3. Использование секции CDATA:
Однако опять, в тексте может встретиться последовательность ]]> или даже ]]></value> , что приведет к ошибке!
4. И последний вариант - это кодировать исходный текст по base64, как вложения в письмах:
Тогда "плохие" символы мы явно не встретим, но теряем возможность просто редактировать xml файл, к тому же неизвестно когда нужно декодировать а когда нет - вариант кодировать ВСЕ значения неприемлем.
Подскажите, какой вариант используете Вы!!!
У меня такая ситуация - я в xml файле передаю текст введенный пользователем.Текст может содержать html теги, а также быть просто числами! Текст я передаю так:
PHP:
<value>Здесь текст</value>
1. Возникла идея хранить текст в значении аттрибута:
PHP:
<value text="Здесь текст" />
2. Следующий вариант - заменять "плохие" символы на их мнемоники или коды, но тогда непонятно как поступать с мнемониками, которые тоже будут в исходном тексте - ведь обратная замена поменяет и их на "плохие" символы!
PHP:
Было < <
Стало < <
PHP:
<value><![CDATA[Здесь текст]]></value>
4. И последний вариант - это кодировать исходный текст по base64, как вложения в письмах:
PHP:
<value>AB123CD==</value>
Подскажите, какой вариант используете Вы!!!