XSLT 和特殊字符的问题
本文关键字:问题 特殊字符 XSLT | 更新日期: 2023-09-27 18:33:57
在我的网络应用程序(ASP.net 4,C#)上,我使用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 ...>
下面是导致此问题的消息之一的示例:
setting-->about phone----< software update
有什么可能的解决方案吗?
您需要对此类特殊字符进行编码。就XML而言,有5个:
-
>
->
-
<
-<
-
&
-&
-
"
-"
-
'
-'
您需要从使用输入对这些内容进行编码。
另一种方法是将所有用户生成的内容放在<!'[CDATA'[']']>
部分中,这有效地实现了相同的目标。