2007年10月19日 星期五

Remove Invalid character for XML or webservice.

常常遇到 .NET 的 WebService or XML 無法支援特殊字元.
最後發現根據微軟的 XML 合法字元如下 :
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
所以需要下面的 code 加以過濾 :

public class XmlTextConvert
{
// XML The the spec states:
// Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
protected static Regex InvalidXMLCharacter =
new Regex(@"[\u0000-\u0008|\u000B|\u000C|\u000E-\u001F|\uD800-\uDFFF|\uFFFE|\uFFFF]",
RegexOptions.Compiled);

public static string XmlConvertStr(string src)
{
return InvalidXMLCharacter.Replace(src, "");
}
}

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo

0 意見: