Как редактировать действительный XML на веб-странице?C#

Место общения программистов C#
Anonymous
Как редактировать действительный XML на веб-странице?

Сообщение Anonymous »

Мне нужно запустить быстрый и грязный редактор конфигурации. Поток выглядит примерно так:
Конфигурация (POCO на сервере) сериализуется в XML.

На этом этапе XML хорошо сформирован. Конфигурация отправляется на веб-сервер в XElements.

На веб-сервере XML (да, ВСЕ ЭТО) сбрасывается в текстовую область для редактирования.

пользователь редактирует XML непосредственно на веб-странице и нажимает «Отправить».

В ответ я получаю измененный текст конфигурации XML. На данный момент ВСЕ escape-последовательности были отменены в процессе их отображения на веб-странице.

Я пытаюсь загрузить строку в объект XML (XmlElement, XElement и т. д.).Проблема в том, что при сериализации избегаются строки атрибутов, но они теряются при переводе.
Например, предположим, что у меня есть объект, который имеет регулярное выражение. Вот конфигурация веб-сервера: Итак, я поместил это в текстовую область, где для пользователя это выглядит следующим образом: Итак, пользователь вносит небольшие изменения и отправляет изменения обратно. На веб-сервере строка ответа выглядит так: Итак, пользователь добавил еще один валидатор, и теперь ОБА имеют атрибуты с недопустимыми символами. Если я попытаюсь загрузить это в любой объект XML, он выдаст исключение, поскольку < и & недопустимы в текстовой строке. Я НЕ МОГУ использовать какую-либо функцию кодирования, поскольку она кодирует все целиком:
var result = Server.HttpEncode(editedConfig);
результат

Код: Выделить всё

<Configuration>
<Validator Expression="[^<]" />
<Validator Expression="[^&]" />
</Configuration>
Это НЕдопустимый XML. Если я попытаюсь загрузить это в XML-элемент любого типа, меня ударит падающая наковальня.
Итак, остается вопрос... ЕДИНСТВЕННЫЙ способ получить эту строку XML готов к анализу в объект XML с помощью замены регулярных выражений? Есть ли способ «отключить ограничения» при загрузке? Как это обойти?

Один последний ответ, а затем вики-сайт, так как я не думаю, что существует действительный ответ.
XML, который я помещаю в текстовую область, ЯВЛЯЕТСЯ действительным, экранированным XML. Процесс 1) помещения его в текстовую область 2) отправки клиенту 3) отображения клиенту 4) отправки формы, в которой он находится 5) отправки обратно на сервер и 6) получения значения из формы УДАЛЯЕТ ЛЮБОЙ И ВСЕ ПОБЕЖНО.
Позвольте мне сказать это еще раз: я НИЧЕГО не освобождаю от побега. Просто отобразите его в браузере!
Вещи, над которыми стоит задуматься: есть ли способ вообще предотвратить это неэкранирование? Есть ли способ взять почти валидный XML и безопасно «очистить» его?
Резюме
Мне нужно знать, как редактировать ДЕЙСТВИТЕЛЬНЫЙ XML в окне браузера БЕЗ стороннего инструмента/инструмента с открытым исходным кодом, который не требует от меня использования регулярных выражений для экранирования значений атрибутов вручную, который не требует от пользователей экранирования их атрибутов и не дает сбоев при циклическом обходе. (&amp;amp;etc;)

Подробнее здесь: https://stackoverflow.com/questions/244 ... -a-webpage

Вернуться в «C#»