Хорошо сформированный файл XML имеет только один элемент root. Поэтому, если вы добавляете несколько строк из базы данных, вам нужен еще один тег, чтобы иметь VN_numbers, где все данные находятся под этим тегом. Вот как бы я переписал твой код. Вам нужно для l oop добавить каждую новую строку из базы данных. Я не включил l oop
Примечание: в именах тегов и атрибутов не должно быть пробелов, поэтому я исправил эту проблему.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
string root = "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?><VN_Numbers></VN_Numbers>";
XDocument exampleDocument = XDocument.Parse(root);
XElement vnNumbers = exampleDocument.Descendants("VN_Numbers").FirstOrDefault();
XElement vnNr = new XElement("VN_Nr", new object[] {
new XAttribute("VN_Nr", 11),
new XElement("EI_Nubmer", new object[] {new XAttribute("NL_Number", 0000), 3}),
new XElement("Serialnumber", 0),
new XElement("GM_Number", 2),
new XElement("FW_Number")
});
vnNumbers.Add(vnNr);
exampleDocument.Save(FILENAME);
}
}
}