2012-05-13 14 views
0

私は非常に複雑な問題があります。私はいくつかの助けが必要です。私のWebアプリの (ASP.net 4、C#の)私は、XMLへのSQL Serverから のデータを変換し、XSLTにそれを養うために、次の行を使用するように( '')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(); 

今、私のフォーラムからのメッセージを、晴れた日のシナリオでフィードすると、全く問題はなく、そうではありません。 メッセージに「<>」のような特殊文字を使用することを決めると、雨の日があります。 私は途中で時々刻々と違うエラーが発生します(メッセージからメッセージへの書き込みに応じて)。 は、私はすでに言うため無効にする出力エスケープ=「yes」を 言うまでもなくを試してみましたが、私は、ユーザーが以下

<a href... or <font ...> 

のようないくつかのタグを使用することができるようにしたい原因のいずれかのメッセージの例であります問題:

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

誰もが同じ問題を抱えていますか?可能な解決策はありますか?

+0

HTMLをXHTMLに変換するには、最初の手順としてHTMLTidyのようなツールを使用してから、その結果をクリーンな結果に適用します。 –

答えて

0

エンコードのような特殊文字が必要です。限りXMLに関しては、それらの5があります。

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

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

代替案は、ユーザーが作成したすべてのコンテンツを<!\[CDATA\[\]\]>セクション内に配置することです。これにより効果的に同じ結果が得られます。

+0

これは唯一の解決策ですか? – user1392047

+0

@ user1392047 - どちらか、それとも ''を使用してください。 – Oded

+0

を使用する場所? – user1392047

関連する問題