0

私の 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 ...>

以下は、問題の原因となるメッセージの 1 つの例です。

setting-->about phone----< software update

可能な解決策はありますか?

4

1 に答える 1

0

このような特殊文字をエンコードする必要があります。XML に関する限り、次の 5 つがあります。

  • >-&gt;
  • <-&lt;
  • &-&amp;
  • "-&quot;
  • '-&apos;

use 入力からこれらをエンコードする必要があります。

別の方法は、すべてのユーザー生成コンテンツを<!\[CDATA\[\]\]>セクション内に配置することです。これにより、効果的に同じことが達成されます。

于 2012-05-13T10:44:08.400 に答える