在我的应用程序中,我使用XAttribute.SetValue(...)
来设置xml属性的值。该值由用户提供。
我可以通过以下方法来设置属性值:
private void SetValue(XAttribute attribute, string input)
{
attribute.SetValue(input);
}
如果输入为Hello "World"
,则属性值为:Hello "World"
这是我所期望的。
如果输入已经被Hello "World"
所“掩盖”,则属性的值为:Hello "World"
那是不正确的。
有办法避免这种转换吗?
答案 0 :(得分:2)
您不能停止将SetValue
之类的字符&
编码为实体代码。因此,为避免对它们进行双重编码,可以确保输入的编码不以开头为准。您可以使用:
System.Net.WebUtility.HtmlDocode(input)
或者,如果您已经引用了System.Web
,
System.Web.HttpUtility.HtmlDecode(input)