Какой хороший способ кодирования произвольного текста в XML читабельно читабельно?

StackOverflow https://stackoverflow.com//questions/9608978

  •  09-12-2019
  •  | 
  •  

Вопрос

То, что я имею до сих пор, помещает текст в теги CDATA, и имея дело с возможностью окончания CDATA, появляющихся в тексте, расщепляя его на несколько соседних CDATAS.

Я не уверен в этом, но анализаторы XML не могут сохранить новые линии внутри тегов CDATA, правильные?Это означало бы сбежать их как-то ...

Я хочу создать эти файлы XML, используя Perl, и разбирать их с C ++ (с помощью Expat), Java и C #.

Самое главное, я хочу, чтобы полученные файлы несколько чудовищники / модифицируемые.Кто-нибудь знает о какой-либо схеме кодирования, которая соответствует этим потребностям?Я использую это, чтобы хранить данные для базы данных, поэтому она должна принять произвольный текст, а после разбора возврата точного же текста.

Это было полезно?

Решение

XML уже поддерживает это, вам не нужно ничего особенного, и вам, безусловно, не нужно использовать CDATA.Просто используйте достойную библиотеку, убедитесь, что вы используете кодировку UTF-8, и добавьте текстовый узел.Если что-то «проигрывает» ножи, то это ошибка.XML уже имеет «кодировку» (сбежав), который является относительно читаемым человеком.Это также стандарт, который делает его намного полезнее, чем изобретать свой собственный.

Смотреть, например, https://stackoverflow.com/a/1140802/181772

Другие советы

Вы можете кодировать контент, если контент был HTML, например:

<html>&lt;b&gt;Bold Text&lt;/b&gt;</html>
.

vs.

<html><![CDATA[<b>Bold Text</b>]]></html>
.

hmm, насколько я могу сказать разделы CDATA предназначены для данных о символах, и управляющие символы не учитываются.Я предполагаю, что это означает, что по вопросу новых линий шарверов XML совершает суждение призывов о том, являются ли они контрольным персонажем или нет (исторически, да, но ректически ... нет.).

Пока оно ухудшит читаемость, вы можете кодировать ньюлов, используя escape-последовательности, Предполагая, что вы избежаете правильно, анализ должен правильно преобразовать его, вам просто нужно будет отметить его при кодировании.

Другой вариант, который полностью нарушает ваше «читаемое человеком» требование к базой-64 кодировать текст, это позволяет кодировать произвольную информацию в XML.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top