【发布时间】:2015-05-02 05:34:32
【问题描述】:
我必须使用XmlReader 读取 XML 文件。我是这样使用它的:
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
settings.IgnoreProcessingInstructions = true;
settings.IgnoreWhitespace = true;
XmlReader reader = XmlReader.Create(file, settings);
while (reader.Read())
{
if (reader.IsStartElement())
{
switch (reader.Name)
{
case "NBBOOKS"
{
reader.Read();
nbBooks = int.Parse(reader.Value);
break;
}
case "BOOKS":
{
tempReader = reader.ReadSubtree();
while(tempReader.ReadToFollowing("BOOK"))
{
tempReader.ReadToFollowing("TITLE");
tempReader.Read();
// save title
tempReader.ReadToFollowing("SYNOPSIS");
tempReader.Read();
// save synopsis
}
tempReader.Close();
break;
}
}
}
}
我想加快我的申请速度。因此,我使用XmlReaderSettings 来忽略cmets、处理指令和空格。但我的读者仍然在 (1) 中阅读 XmlNodeType 而不是 XmlNodeType.Element。
有没有办法忽略除XmlNodeType.Element之外的所有XmlNodeType?
【问题讨论】: