这真的是一个两部分的问题......
我有一个从内存流创建的 XmlReader 对象。我已经使用了几次 .Read() 方法,现在我想回到开头并从声明节点重新开始。我怎样才能做到这一点?
创建 XmlReader 对象时,我创建了一个 XmlDocument 对象和一个 MemoryStream 对象。在使用内存流创建 XmlReader 之后,是否需要以某种方式销毁这些对象?或者销毁它们也会影响 XmlReader 对象?
这就是我创建 XmlReader 对象的方式
XmlReader xmlReader = null;
XmlDocument doc = new XmlDocument();
doc.Load(m_sXMLPath);
if (doc.FirstChild.NodeType == XmlNodeType.XmlDeclaration)
{
XmlDeclaration dec = null;
byte[] bytes = null;
MemoryStream ms = null;
dec = (XmlDeclaration)doc.FirstChild;
switch (dec.Encoding.ToLower())
{
case "utf-8":
bytes = Encoding.UTF8.GetBytes(File.ReadAllText(m_sXMLPath));
break;
case "utf-16":
bytes = Encoding.Unicode.GetBytes(File.ReadAllText(m_sXMLPath));
break;
default:
throw new XmlException("");
}
if (bytes != null)
{
ms = new MemoryStream(bytes);
xmlReader = XmlReader.Create(ms);
}
}