如果有人能解释为什么当我的 XML 文档(附图)有根元素时我会收到"根元素丢失"错误,他们就会赢得一匹从眼睛发射激光的小马。
代码:
if (ISF.FileExists("Players.xml"))
{
string xml;
using (IsolatedStorageFileStream rawStream = ISF.OpenFile("Players.xml", FileMode.Open))
{
StreamReader reader = new StreamReader(rawStream);
xml = reader.ReadToEnd();
XmlReaderSettings settings = new XmlReaderSettings { IgnoreComments = true, IgnoreWhitespace = true };
XmlReader xmlReader = XmlReader.Create(reader, settings);
while (xmlReader.Read())
{
switch (xmlReader.NodeType)
{
case XmlNodeType.Element:
switch (xmlReader.Name)
{
case "numberOfPlayers":
string nodeValue = xmlReader.ReadContentAsString();
int NODEVALUE = int.Parse(nodeValue);
MessageBox.Show(" " + NODEVALUE);
break;
}
break;
}
break;
}
reader.Close();
}
}
答案
您的问题是由这一行引起的:
xml = reader.ReadToEnd();
这将读取器流定位到末尾,以便当XmlReader.Create
执行后,流中没有任何内容可供读取。
如果您需要xml
要填充的字符串,那么您需要先关闭并重新打开阅读器XmlReader.Create
。