ユーザーからの HTML 入力を受け入れる Web ページがあります。System.Xml
入力は、次のように名前空間を使用して xml ドキュメントに変換されます。
var doc = new XmlDocument();
doc.AppendChild(doc.CreateElement("root"));
doc.DocumentElement.SetAttribute("BodyHTML", theTextBox.Text);
その後、データに対して Xsl 変換 ( System.Xml.Xsl.XslCompiledTransform
) が使用されます。
ユーザーは、箇条書きや引用符などを使用して、Microsoft Word でテキストを記述する傾向があります。マイ ページに貼り付けると、テキストに 0x0C、0x03 などの無効な文字が含まれます。xsl 変換を使用すると、「16 進値 0x0C は無効な文字です」というエラーが発生します。
これまでの私の修正は、ループと を使用して、攻撃的であることがわかった文字を削除することでしString.Replace
たString.Empty
。
私が探しているのは、これを行うためのより良い方法です。組み込みの .Net メソッド? あるいは、違法な Unicode 文字の完全なリストかもしれません。