1

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

我有以下方法来设置属性值:

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

如果输入是Hello "World",那么属性的值是:Hello "World"

这是我所期待的。

如果输入已经被“屏蔽”Hello "World"了,那么属性的值是:Hello "World"

这是不正确的。

有没有办法避免这种转换?

4

1 回答 1

2

您不能停止SetValue对字符进行编码,例如&实体代码。因此,为了避免它们被双重编码,您可以确保您的输入一开始就没有被编码。您可以使用以下方法执行此操作:

System.Net.WebUtility.HtmlDocode(input)

或者,如果您已经参考过System.Web

System.Web.HttpUtility.HtmlDecode(input)

于 2019-08-19T15:15:54.013 回答