2

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

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

我尝试在 xps 文件中实现搜索,但搜索<>而不是&lt;&gt;返回任何内容。

更新:至少我在这里找到了 xml 文档转义字符的列表

4

3 回答 3

2

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讨论

于 2010-09-13T07:50:38.970 回答
1

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

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

于 2010-09-13T07:22:12.470 回答
0

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

教程

下载

于 2010-09-13T07:12:45.753 回答