我有一个非常复杂的问题,我需要一些帮助。 在我的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();
现在,当我从论坛提供消息时,在阳光灿烂的日子里,应该没有任何问题,也没有。 当用户决定使用像< >在他们的信息中,我们有下雨天。 我得到一个错误,顺便说一下(从消息到消息取决于他们在那里写的内容)。 我已经尝试过disable-output-escaping =“yes” 不用说,我希望用户能够使用像
这样的标签<a href... or <font ...>
以下是导致此问题的其中一条消息的示例:
setting-->about phone----< software update
有没有人遇到同样的问题?任何可能的解决方案?
答案 0 :(得分:0)
您需要编码这样的特殊字符。就XML而言,其中有5个:
>
- >
<
- <
&
- &
"
- "
'
- '
您需要从使用输入中对这些进行编码。
另一种方法是将所有用户生成的内容放在<!\[CDATA\[\]\]>
个部分中,这样可以有效地实现相同目标。