2017-06-06 52 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