Вам нужно вынести xdocument в переменную класса, а в обработчике проверять, если документ null, то создать, если не null, то найти элемент Text и добавить новые узлы после него.
public partial class Form1 : Form
{
private readonly XDocument _xml;
public Form1()
{
InitializeComponent();
_xml = CreateNewXml();
}
private void button1_Click(object sender, EventArgs e)
{
var docNode = _xml.Root.Element("Document");
var lastTextNode = docNode.Elements("Text").LastOrDefault();
var textNode = CreateNewTextNode();
if (lastTextNode != null)
lastTextNode.AddAfterSelf(textNode);
else
docNode.Add(textNode);
_xml.Save("_s.temp");
}
private XDocument CreateNewXml()
{
var doc = new XDocument(new XDeclaration("1.0", "windows-1251", null));
var fileNode = new XElement("File");
fileNode.Add(new XAttribute(XNamespace.Xmlns + "xsi",
"http://www.w3.org/2001/XMLSchema-instance"));
fileNode.Add(new XAttribute("id", 1),
new XAttribute("version", "2.0"));
XElement docNode = new XElement("Document");
docNode.Add(new XAttribute("DocId", 11512),
new XAttribute("Date", "12.07.15"));
fileNode.Add(docNode);
doc.Add(fileNode);
return doc;
}
private XElement CreateNewTextNode()
{
XElement textNode = new XElement("Text");
textNode.Add(
new XAttribute("a", textBox1.Text),
new XAttribute("b", textBox2.Text));
return textNode;
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = null;
textBox2.Text = null;
}
}