使用以下方法在Web Service中调用XDocument.LoadXml之前替换无效的xml字符:
[WebMethod]
public XmlDocument GetXml(string text)
{
XElement xElement = new XElement("RootNode");
xElement.Add(new XElement("title", SanitizeHexaDecimalSymbol(text))
var xmldoc = new XmlDocument();
xmldoc .LoadXml(xElement.Tostring())
}
private static string SanitizeHexaDecimalSymbol(string txt)
{
string regEx = "[\x00-\x08\x0B\x0C\x0E-\x1F\x26]";
return Regex.Replace(text, regEx, "", RegexOptions.Compiled);
}
如何将已清理的文本替换回原始文本。 我不想使用硬编码方式将文本替换回原始文本。
有没有一种方法我可以调用DesanitizeHexaDecimalSymbol(text)方法,我不知道这个方法中的实现是什么来取回原始文本。
解决方案: 我按照@Zohar解决方案将其作为替换原始文本的十六进制符号。