XAttribute.SetValue转换"

时间:2019-08-19 09:47:59

标签: c# xml linq-to-xml xattribute

在我的应用程序中,我使用XAttribute.SetValue(...)来设置xml属性的值。该值由用户提供。

我可以通过以下方法来设置属性值:

private void SetValue(XAttribute attribute, string input)
{
    attribute.SetValue(input);
}

如果输入为Hello "World",则属性值为:Hello "World"

这是我所期望的。

如果输入已经被Hello "World"所“掩盖”,则属性的值为:Hello "World"

那是不正确的。

有办法避免这种转换吗?

1 个答案:

答案 0 :(得分:2)

您不能停止将SetValue之类的字符&编码为实体代码。因此,为避免对它们进行双重编码,可以确保输入的编码不以开头为准。您可以使用:

System.Net.WebUtility.HtmlDocode(input)

或者,如果您已经引用了System.Web

System.Web.HttpUtility.HtmlDecode(input)