【发布时间】:2015-04-05 01:30:44
【问题描述】:
我想使用一个XmlTextReader 忽略命名空间并且不检查字符。要忽略命名空间,我可以设置属性Namespaces=false 并且不检查字符我可以使用XmlReaderSettings.CheckCharacters = false。
我尝试使用它的构造函数创建XmlTextReader,但这不允许我传入配置的XmlReaderSettings。属性Settings 是只读的,所以我无法在构造后设置它。
XmlTextReader reader = new XmlTextReader(gzs) { Namespaces = false};
reader.Settings = new XmlReaderSettings { CheckCharacters = false}; // readonly
使用基类XmlReader 的静态方法Create() 我可以传入XmlReaderSettings,但是该方法返回一个XmlTextReaderImpl,并且没有要设置的属性Namespace,它不能被强制转换为XmlTextReader.
var settings = new XmlReaderSettings { CheckCharacters = false};
var reader = XmlTextReader.Create(gzs, settings);
XmlTextReader textReader = reader as XmlTextReader // not possible
那么如何创建这样的 XmlTextReader?甚至可能吗? XmlReaderSettings 上是否有任何属性可以忽略命名空间?
【问题讨论】: