我必须启动并运行快速而脏的配置编辑器。流程如下:
配置(服务器上的POCO) - > Xml(序列化,作为XElements转移到网站) - >文字(在网页中编辑)
(做出改变)
文本编辑器 - > XElement(解析提交的表单值) - >构造
问题是序列化不会转义任何字符串。但是当我尝试将其解析回xml时,我无法弄清楚如何在不抛出异常的情况下将字符串转换为XElement。
例如,假设我有一个具有正则表达式的对象。这将是编辑器中的片段:
<Validator Expression="[^<]" />
但是,在回程中,我无法将其恢复为XElement格式,因为该属性具有非法字符。
我无法弄清楚如何指示序列化程序转义字符,我无法弄清楚如何在返回途中让解析器忽略它们。
我能看到的唯一方法是对XML进行一些非常粗略的正则表达式替换,我几乎可以完全保证在某些角落或其他情况下搞砸了。
还有其他办法吗?
答案 0 :(得分:1)
好的,取代我的答案 - 我想我知道你现在要来的地方。
您的网页最终会有以下来源:
<textarea>
<Validator Expression="[^<;]"/>
</textarea>
甚至
<textarea>
<Validator Expression="[^<]"/>
</textarea>
您需要对属性中的值进行双重编码,以使它们在textarea中显示为编码值:
<textarea>
<Validator Expression="[^&lt;]"/>
</textarea>