2017-06-06 33 views
0

读取XML我写了一个设置文件在C#中的XML写作和C#

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

的许多方法来解析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,我还没有为阿列克谢他回答说使用它之前,但现在看来,你不在设置节点开始阅读(见下文)。

XmlReader xmlReader = XmlReader.Create(files); 

xmlReader.ReadStartElement("Settings"); 

xmlReader.ReadStartElement("launch"); 
textBox1.Text = xmlReader.ReadString(); 
0

使用XmlWriter进行读取和写入必须是对称的 - 您在读取的代码中缺少读取设置。

注:这可能是更容易使用串行读/写完整的对象 - Serialize an object to XML

+0

Iam茫然我不明白。你能编一个小例子吗? – Data