C#:使用XmlTextWriter清理XML文本值?

时间:2009-07-24 05:16:30

标签: c# xml escaping sanitization xmltextwriter

我正在使用XmlTextWriter序列化并保留部分数据。我序列化的几个字段基于用户输入(例如用户名)。今天我使用了WriteElementString的{​​{1}}方法。

我的问题是:XmlTextWriter的第二个参数是要写入的文本值。如何在写作之前对其进行消毒?

示例代码:

WriteElementString

变量XmlTextWriter writer = new XmlTextWriter("filename.xml", null); writer.WriteStartElement("User"); writer.WriteElementString("Username", inputUserName); writer.WriteElementString("Email", inputEmail); writer.WriteEndElement(); writer.Close(); inputUserName是用户输入的,我想在写之前清理/转义它们。

实现这一目标的最佳方式是什么?

2 个答案:

答案 0 :(得分:3)

你究竟需要逃离那里? WriteElementString将完成XML所需的所有转义(即& - &gt; &amp;< - &gt; &lt;等等)

答案 1 :(得分:-2)

您可以将这些值安全地设置为使用xml最安全的CDATA

之前,您应该通过RegEx或任何其他验证来检查值。