использование включает в себя функции xml .
Идея состоит в том, чтобы иметь один «главный» файл, содержащий объявление документа, и «дочерний» файл, который содержит внутренние узлы.В этом случае вы можете просто добавить текст в дочерний файл, и мастер останется действительным.
файл master.xml:
<?xml version="1.0"?>
<WayPoints xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="slave.xmlpart"/>
</WayPoints>
slave.xmlpart:
<WayPoint>
<Latitude>
<Degrees>1</Degrees>
</Latitude>
<Longitude>
<Degrees>1</Degrees>
</Longitude>
</WayPoint>
<WayPoint>
<Latitude>
<Degrees>2</Degrees>
</Latitude>
<Longitude>
<Degrees>2</Degrees>
</Longitude>
<WayPoint>
Это позволит вам воспользоваться как стандартом Xml, так и качеством написания текста.Только вы должны использовать File.AppendText вместо класса XmlWriter, чтобы иметь возможность работать с подчиненным файлом.Если вы все еще хотите использовать XmlWriter, вы можете использовать временный MemoryStream, в котором вы строите узлы, прежде чем добавлять содержимое потока в подчиненный файл.
[Edit] - это пример кода:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
EnsureFiles();
Console.WriteLine("Press espace to quit");
ConsoleKeyInfo key;
do
{
key = Console.ReadKey();
Append(key);
}
while (key.Key != ConsoleKey.Escape);
Console.ReadLine();
}
private static void Append(ConsoleKeyInfo key)
{
var keyEvent = new XElement("KeyEvent",
new XElement("Key", new XAttribute("key", key.Key.ToString())),
new XElement("At", DateTime.Now.ToString())
);
File.AppendAllText("slave.xmlpart", keyEvent.ToString());
}
private static void EnsureFiles()
{
if (!File.Exists("slave.xmlpart"))
{
File.WriteAllText("slave.xmlpart", ""); // simply create the file
}
if (!File.Exists("master.xml"))
{
var doc = new XDocument(
new XElement("WayPoints",
new XElement("{http://www.w3.org/2001/XInclude}include",
new XAttribute("href", "slave.xmlpart")
)
)
);
doc.Save("master.xml");
}
}
}
}
Тем не менее, кажется, что класс Xdocument не включает в себя включает, но эта статья показывает решение: http://www.catarsa.com/Blog/Kohler-Radim/2010/5/Linq-To-Xml-XInclude