【发布时间】:2015-04-01 15:57:58
【问题描述】:
我的代码:
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 字符(当然是垂直制表符)。
我已尝试使用以下文章中引用的方法:
Escape invalid XML characters in C#
我的问题是:如何使用 .NET 框架(如链接状态)删除或忽略无效字符?
注意:以不涉及对要替换的实体引用列表进行硬编码的方式(我已经在这样做了,这太可怕了,我感觉很糟糕,我应该这样做)
【问题讨论】:
-
你可以试试ignoring it而不是删除。
-
我试过了,但还是抛出了同样的异常
-
阅读时忽略它们,写作时也应该忽略它们。
-
你说得对,我刚刚明白了
-
如果您可以发布一个使用
var validXmlChars = text.Where(ch => XmlConvert.IsXmlChar(ch)).ToArray();删除字符的好方法,我将标记为答案