2017-01-14 10 views
0

はしかし、これは私が(1行)得るものです:C#XML Serilization&追加は、新たなデータ

<?xml version="1.0" encoding="utf-8"?><!--This file is generated by the program.--><root><OFBM time="9:15" date="22.06.2016"><folder>file:///C:/Program Files (x86)/Cisco/Cisco AnyConnect Secure Mobility Client</folder><folder>file:///C:/Arduino223</folder></OFBM></root> 

私のコード:

public void CreateXML() 
     { 
      XmlWriter writer = XmlWriter.Create(@"C:\Users\Alek\Dropbox\D\Debug\product.xml"); 

      writer.WriteStartDocument(); 

      writer.WriteComment("This file is generated by the program."); 

      writer.WriteStartElement("root"); 
      writer.WriteStartElement("OFBM"); 
      writer.WriteAttributeString("time", "9:15"); 
      writer.WriteAttributeString("date", "22.06.2016"); 
      writer.WriteElementString("folder", @"file:///C:/Program Files (x86)/Cisco/Cisco AnyConnect Secure Mobility Client"); 
      writer.WriteElementString("folder", @"file:///C:/Arduino223"); 
      writer.WriteEndElement(); 
      writer.WriteEndElement(); 
      writer.WriteEndDocument(); 
      writer.Flush(); 
      writer.Close(); 
     } 

新しいデータを追加するにはどうしたらいいですか?毎回新しいXMLを作成するのではなく、

+1

はこれを見て記事 - http://stackoverflow.com/questions/4094180/indexation-and-new-line-command-for-xmlwriter-in-c-sharpインデントを追加するためのソリューションがあります。第2号:http://stackoverflow.com/questions/20922835/appending-an-existing-xml-file-with-xmlwriter - xmlを既存のファイルに追加する方法。 – VitaliyK

答えて

0

あなたはXMLファイルで達成しようとしているのインデントを達成するためにいくつかの設定を追加します:あなたがこれを行うことができ、ファイルを再作成せずに新しいデータを追加するには

//I added this part (XmlWriterSettings): 
XmlWriterSettings mySettings = new XmlWriterSettings(); 
mySettings.Indent = true; 
mySettings.IndentChars = (" "); 
mySettings.CloseOutput = true; 
mySettings.OmitXmlDeclaration = true; 

//Added the settings you intialize and set on your XmlWriter: 
XmlWriter writer = XmlWriter.Create(@"C:\Users\Alek\Dropbox\D\Debug\product.xml", mySettings); 

writer.WriteStartDocument(); 

writer.WriteComment("This file is generated by the program."); 

writer.WriteStartElement("root"); 
writer.WriteStartElement("OFBM"); 
writer.WriteAttributeString("time", "9:15"); 
writer.WriteAttributeString("date", "22.06.2016"); 
writer.WriteElementString("folder", @"file:///C:/Program Files (x86)/Cisco/Cisco AnyConnect Secure Mobility Client"); 
writer.WriteElementString("folder", @"file:///C:/Arduino223"); 
writer.WriteEndElement(); 
//writer.WriteEndElement(); 
//writer.WriteEndDocument(); 
    writer.Flush(); 
    writer.Close(); 

を:

XDocument doc = XDocument.Load(@"C:\Users\Alek\Dropbox\D\Debug\product.xml"); 
XElement school = doc.Element("root"); 
school.Add(new XElement("OFBM", 
        new XElement("folder", "file:///C:/Arduino223"))); 
doc.Save(@"C:\Users\Alek\Dropbox\D\Debug\product.xml"); 
関連する問題