【问题标题】:Is there any built-in function in NET Framework which encodes a string to a valid XML unicode?NET Framework 中是否有任何内置函数可以将字符串编码为有效的 XML unicode?
【发布时间】:2011-04-11 12:50:33
【问题描述】:

检查 Xps 文件后,我注意到 Xps 文件中的字符串 <> 被转换为 <>

那么 .Net 框架中是否有任何内置函数可以为我完成这项工作? 如果不存在 <> 之外的字符,我应该在 myOwn 函数中转义吗?

我尝试在 xps 文件中实现搜索,但搜索 <> 而不是 <> 不会返回任何结果。

更新:至少我找到了the list here of xml document escape characters

【问题讨论】:

    标签: .net xml vb.net xps .net-3.5


    【解决方案1】:

    XMLTextWriter 是您正在寻找的。您应该避免使用任何 HTMLEncode 方法(有几种方法),除非您实际上是在对文本进行编码以便在 HTML 文档中使用。如果您正在对用于 XML 文档(包括 XHTML)的文本进行编码,则应该使用 XMLTextWriter。

    这样的事情应该可以解决问题:

    StringWriter strWriter = new StringWriter();
    XmlTextWriter xmlWriter = new XmlTextWriter(strWriter);
    xmlWriter.WriteString('Your String Goes here, < and >, as well as other special chars will be properly encoded');
    xmlWriter.Flush();
    
    Console.WriteLine("XML Text: {0}", strWriter.ToString());
    

    另见this other stackoverflow discussion

    【讨论】:

      【解决方案2】:

      HtmlEncode 应该适合你。
      &amp;lt;&amp;gt; 不是 unicode。它们只是转义的 HTML/XML 字符。

      编辑:
      想想看,您可以推出自己的 XmlEncode 方法,因为 XML 中只有 5 个predefined entities。在 HTML 中有 252 个。

      【讨论】:

        【解决方案3】:

        不是内置的,但微软已经发布了一个反跨站点脚本库,应该会有所帮助。它在 .NET 的 Html.Encode 方法之外添加了新功能,包括 XML 编码方法。

        Tutorial

        Download

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-07-25
          • 1970-01-01
          • 2012-12-17
          • 1970-01-01
          • 2011-05-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多