.NET Framework中是否有内置函数将字符串编码为有效的XML unicode?

时间:2010-09-13 07:07:56

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

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

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

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

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

3 个答案:

答案 0 :(得分: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 discussion

答案 1 :(得分:1)

HtmlEncode应该对你有用。
&lt;&gt;不是unicode。它们只是转义HTML / XML字符。

修改
想想看,你可以推出自己的XmlEncode方法,因为XML中只有5 predefined entities。在HTML中有252个。

答案 2 :(得分:0)

没有内置,但微软发布了一个应该有用的反跨站点脚本库。它增加了.NET的Html.Encode方法之外的新功能,包括XML编码方法。

Tutorial

Download