ASP.NET 与 XML-XmlReader 与 XmlTextReader 关系及实例创建(重要)

作者:vkvi 来源:ITPOW(原创) 日期:2010-6-23

XmlTextReader、XmlNodeReader 和 XmlValidatingReader 都继承自 XmlReader。(XmlValidatingReader 现在已经过时。)

XmlReader 实例的创建

以下是错误的做法,将无法通过编译:

XmlReader r = new XmlReader();

以下是正确的做法,也是微软推荐的做法,主要是其 XmlReaderSettings 功能很强大:

XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("data.xml", settings);

这里 IgnoreWhitespace 给我们带来了很大的方便,避免把节点之间的空白当作节点来分析了。

这里您可能会遇到一个问题,就是您现在不是要去读取本地或 HTTP 的 xml 文件,而是要读取一个存储着 XML 数据的字符串变量,怎么做呢?

XmlReader reader = XmlReader.Create(new System.IO.StringReader(str), settings);

XmlReaderSettings 更多内容请参见:http://msdn.microsoft.com/zh-cn/library/9khb6435(v=VS.80).aspx

XmlTextReader 实例的创建

XmlTextReader reader = new XmlTextReader(url);
XmlTextReader reader = new XmlTextReader(str, XmlNodeType.Element, null);

这种情况下,节点之间的空白,也会被当作节点来分析,我觉得这搞得很麻烦,所以还是推荐用 XmlReader.Create 来创建。

相关文章