【问题标题】:Sanitize XML Attribute Values清理 XML 属性值
【发布时间】:2011-03-13 15:14:22
【问题描述】:

如何轻松清理传递给 XAttribute 的 Value 属性的值。

【问题讨论】:

  • 定义“消毒”,你可能会得到一个有用的答案。
  • 嗯,基本上它在保存时抛出一个错误,它不能接受某个字符,'/0'。我认为它不能接受其他字符,所以我想知道是否有一种方法可以将它们全部删除。
  • 也许将该信息添加到实际问题中......

标签: c# .net xml serialization xattribute


【解决方案1】:

这里有一个扩展方法来清除你的麻烦。 /0 在 XML 中是不允许的。我不确定其他字符是否也被禁止,但我相信不会。最好从' ' 开始。

void Main()
{

    Console.WriteLine("123\0394".XmlSanitize());

}

public static class XmlHelpers
{
    public static string XmlSanitize(this string badString)
    {
        return new String(badString.Where(c => c >=' ').ToArray());
    }
}

【讨论】:

    【解决方案2】:

    你可以试试:

    string value = "!@#$%^&*()123%^&*(!@#\(*!&10987"
    value = System.Security.SecurityElement.Escape(value);
    

    这将转义作为 XML 属性值无效的字符。

    【讨论】:

    • 很好,但没有摆脱 \0。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 2011-05-04
    • 2016-10-02
    • 2021-06-06
    • 2020-05-20
    相关资源
    最近更新 更多