C# XSLT和特殊字符的问题

C# XSLT和特殊字符的问题,c#,asp.net,xml,xslt,for-xml,C#,Asp.net,Xml,Xslt,For Xml,在我的web应用程序(ASP.net 4,C#)中,我使用FOR XML PATH(“”)将数据从SQL Server转换为XML, 并使用以下行将其提供给XSLT: MemoryStream stream = new MemoryStream(UTF8Encoding.UTF8.GetBytes(xml)); XPathDocument document = new XPathDocument(stream); StringWriter writer = new StringWriter();

在我的web应用程序(ASP.net 4,C#)中,我使用FOR XML PATH(“”)将数据从SQL Server转换为XML, 并使用以下行将其提供给XSLT:

MemoryStream stream = new MemoryStream(UTF8Encoding.UTF8.GetBytes(xml));
XPathDocument document = new XPathDocument(stream);
StringWriter writer = new StringWriter();
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load(xsltPath);
transform.Transform(document, null, writer);
return writer.ToString();
现在,当我从我的论坛反馈消息时,在晴天场景中,应该没有任何问题,也没有问题。 当用户决定在他们的消息中使用特殊字符,如<>时,我们就遇到了困难。 我得到了一个错误,顺便说一句,这个错误有时会有所不同(不同的消息取决于他们在那里写了什么)。 我已尝试禁用输出转义=“是” 不用说,我希望用户能够使用一些标签,比如

<a href... or <font ...>
关于手机--
任何可能的解决方案?

您需要对这些特殊字符进行编码。就XML而言,有5种:

  • -

  • @user1392047-或者使用
    @user1392047-围绕所有用户生成的内容<代码>使用像HtmlDiy这样的工具将HTML转换成XHTML——作为第一步,然后对干净的结果应用转换。
    setting-->about phone----< software update