C#:使用 XmlTextWriter 清理 XML 文本值?
我正在使用 XmlTextWriter
序列化并保留一些数据。 我序列化的几个字段基于用户输入(例如用户名)。 今天我使用 XmlTextWriter
的 WriteElementString
方法。
我的问题是:WriteElementString
的第二个参数是要写入的文本值。 在写作之前如何对其进行消毒?
示例代码:
XmlTextWriter writer = new XmlTextWriter("filename.xml", null);
writer.WriteStartElement("User");
writer.WriteElementString("Username", inputUserName);
writer.WriteElementString("Email", inputEmail);
writer.WriteEndElement();
writer.Close();
变量 inputUserName
和 inputEmail
是用户输入,我想在编写之前对它们进行清理/转义。
实现这一目标的最佳方法是什么?
I'm using XmlTextWriter
to serialize and persist some of my data. Several of the fields I serialize are based on user input (e.g. Username). Today I use the WriteElementString
method of XmlTextWriter
.
My question is: the second parameter of WriteElementString
is the text value to be written. How can I sanitize it prior to writing?
An example code:
XmlTextWriter writer = new XmlTextWriter("filename.xml", null);
writer.WriteStartElement("User");
writer.WriteElementString("Username", inputUserName);
writer.WriteElementString("Email", inputEmail);
writer.WriteEndElement();
writer.Close();
The variables inputUserName
and inputEmail
are user-input, and I would like to sanitize/escape them prior to writing.
What's the best way to achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你到底需要什么才能逃离那里?
WriteElementString
将完成 XML 所需的所有转义(即&
->&
、<
> -><
等)What exactly do you need to escape there?
WriteElementString
will do all escaping needed by XML already (i.e.&
->&
,<
-><
, etc)您可以将这些值保护为 CDATA,这对于 xml 来说是最安全的。
在此之前,您应该通过 RegEx 或任何其他验证来检查值。
You could safe these Values as CDATA that will be safest you can do with xml.
Prior you should check the values via
RegEx
or any other validation.