我用C#编写了一个设置文件作为XML
XmlWriter xmlWriter = XmlWriter.Create(files);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Settings");
xmlWriter.WriteStartElement("launch");
xmlWriter.WriteString("launch tab");
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("some_setting");
xmlWriter.WriteString("empty");
xmlWriter.WriteEndElement();
等等,但如何阅读呢?
我一直都有错误。
XmlReader xmlReader = XmlReader.Create(files);
xmlReader.ReadStartElement("launch");
textBox1.Text = xmlReader.ReadString();
我希望简单地将其读回来但是会收到错误
System.Xml.XmlException:'元素'启动'没找到
第1行,第40位。
答案 0 :(得分:0)
使用XmlWriter
进行读写操作必须是对称的 - 您在阅读代码中缺少读取设置。
注意:使用序列化来读/写整个对象可能更容易 - Serialize an object to XML
答案 1 :(得分:0)
在解析XML文件的许多方法中(请参阅here以了解方法的正确分解),一般来说,我发现使用XmlDocument进行解析更为简单。对于您的代码,它将类似于以下示例:
void CreateXML(string fileName)
{
XmlWriter xmlWriter = XmlWriter.Create(fileName);
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Settings");
xmlWriter.WriteStartElement("launch");
xmlWriter.WriteString("launch tab");
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("some_setting");
xmlWriter.WriteString("empty");
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Close();
}
void ReadXML(string fileName)
{
XmlDocument doc = new XmlDocument();
doc.Load(fileName);
XmlNode root = doc.SelectSingleNode("Settings");
string launchSetting = root.SelectSingleNode("launch").InnerText;
textBox1.Text = launchSetting;
}
如果您想坚持使用XmlReader,我之前没有使用它,但正如Alexei在他的回答中所说,您似乎没有在“设置”节点开始阅读(见下文)。
XmlReader xmlReader = XmlReader.Create(files);
xmlReader.ReadStartElement("Settings");
xmlReader.ReadStartElement("launch");
textBox1.Text = xmlReader.ReadString();