English 中文(简体)
你如何处理转义无效的属性字符?
原标题:
  • 时间:2008-10-28 17:32:16
  •  标签:

我必须快速启动并运行一个简单的配置编辑器。流程大致如下:

configuration (POCOs on server) -> Xml (serialized, transferred as XElements to website) -> text (edit in place in web page) (make changes)
text editor -> XElement (Parse submitted form value) -> Configuration

问题在于序列化不会转义任何字符串。但是当我尝试将其解析回XML时,我无法弄清如何在不抛出异常的情况下将字符串传递给XElement。

例如,假设有一个带有正则表达式的对象。 这将是编辑器中的片段:

<Validator Expression="[^<]" />

但是,在返回旅程中,我无法将此转换回XElement形式,因为属性有非法字符。

我不知道如何指示序列化器转义字符,也不知道如何让解析器在返回时忽略它们。

我唯一能想到的解决方法是对XML进行一些非常危险的正则表达式替换,我几乎可以肯定在某些特殊情况下会弄糟它。

还有其他的方式吗?

问题回答

好的,更换我的答案 - 我想现在我明白你的意思了。

您的网页最终以以下源代码结束:

<textarea>
    <Validator Expression="[^<;]"/>
</textarea>

甚至。

<textarea>
    &lt;Validator Expression="[^&lt;]"/&gt;
</textarea>

您需要对属性中的值进行双重编码,以便将它们显示为在文本区域中编码的值:

<textarea>
    &lt;Validator Expression="[^&amp;lt;]"/&gt;
</textarea>




相关问题
热门标签