Конфигурация (POCO на сервере) сериализуется в XML.
На этом этапе XML хорошо сформирован. Конфигурация отправляется на веб-сервер в XElements.
На веб-сервере XML (да, ВСЕ ЭТО) сбрасывается в текстовую область для редактирования.
пользователь редактирует XML непосредственно на веб-странице и нажимает «Отправить».
В ответ я получаю измененный текст конфигурации XML. На данный момент ВСЕ escape-последовательности были отменены в процессе их отображения на веб-странице.
Я пытаюсь загрузить строку в объект XML (XmlElement, XElement и т. д.).Проблема в том, что при сериализации избегаются строки атрибутов, но они теряются при переводе.
Например, предположим, что у меня есть объект, который имеет регулярное выражение. Вот конфигурация веб-сервера:
Код: Выделить всё
Код: Выделить всё
Код: Выделить всё
var result = Server.HttpEncode(editedConfig);
результат
Код: Выделить всё
<Configuration>
<Validator Expression="[^<]" />
<Validator Expression="[^&]" />
</Configuration>
Итак, остается вопрос... ЕДИНСТВЕННЫЙ способ получить эту строку XML готов к анализу в объект XML с помощью замены регулярных выражений? Есть ли способ «отключить ограничения» при загрузке? Как это обойти?
Один последний ответ, а затем вики-сайт, так как я не думаю, что существует действительный ответ.
XML, который я помещаю в текстовую область, ЯВЛЯЕТСЯ действительным, экранированным XML. Процесс 1) помещения его в текстовую область 2) отправки клиенту 3) отображения клиенту 4) отправки формы, в которой он находится 5) отправки обратно на сервер и 6) получения значения из формы УДАЛЯЕТ ЛЮБОЙ И ВСЕ ПОБЕЖНО.
Позвольте мне сказать это еще раз: я НИЧЕГО не освобождаю от побега. Просто отобразите его в браузере!
Вещи, над которыми стоит задуматься: есть ли способ вообще предотвратить это неэкранирование? Есть ли способ взять почти валидный XML и безопасно «очистить» его?
Резюме
Мне нужно знать, как редактировать ДЕЙСТВИТЕЛЬНЫЙ XML в окне браузера БЕЗ стороннего инструмента/инструмента с открытым исходным кодом, который не требует от меня использования регулярных выражений для экранирования значений атрибутов вручную, который не требует от пользователей экранирования их атрибутов и не дает сбоев при циклическом обходе. (&amp;etc;)
Подробнее здесь: https://stackoverflow.com/questions/244 ... -a-webpage