创建了XMLTextReader,但XslCompiledTransform.Transform失败并带有无效字符

我的代码:

using (XmlTextReader inputReader = new XmlTextReader(xml, XmlNodeType.Document, new XmlParserContext(null, null, "en", XmlSpace.Default))) { XsltArgumentList arglist = new XsltArgumentList(); GetXSLT().Transform(inputReader, arglist, outputStream); } 

XmlTextReader创建得很好,在XML内部有一个垂直制表符的实体引用( 

错误的行是对Transform的调用。 它表示存在无效的XML字符(当然是垂直制表符)。

我尝试过使用以下文章中引用的方法:
转义C#中的无效XML字符

我的问题是:如何使用.NET框架删除或忽略无效字符,如链接状态?

注意:以某种方式不涉及硬编码实体引用列表来替换(我已经这样做了,它很糟糕,我感觉很糟糕,我应该)

尝试在读写时忽略无效的XML字符:

 var readerSettings = new XmlReaderSettings() { CheckCharacters = false, ConformanceLevel = ConformanceLevel.Document }; using (var inputReader = XmlTextReader.Create(xml, readerSettings, new XmlParserContext(null, null, "en", XmlSpace.Default))) { XsltArgumentList arglist = new XsltArgumentList(); var xslt = GetXSLT(); var writerSettings = xslt.OutputSettings.Clone(); writerSettings.CheckCharacters = false; using (var outputWriter = XmlWriter.Create(outputStream, writerSettings)) { xslt.Transform(inputReader, arglist, outputWriter); } }