Как автоматически заполнить xml? linq to xml - PullRequest
0 голосов
/ 19 марта 2020

Я хочу создать XML, используя Linq (если он работает) автоматически из данных в базе данных. Для этой цели я понимаю, что заполнители необходимы. Как вы вставляете эти заполнители? Я показал вам мой образец XML, я хочу сохранить этот формат. (Если это не работает) Я с нетерпением жду ваших ответов и заранее благодарю.

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using System.Xml.Linq;
 using System.Xml.Schema;

 namespace LinqToXML1._1
 {
   class Program
   {
    static void Main(string[] args)
    {
        XDocument exampleDocument= new XDocument(new XDeclaration("1.0", "utf-8", "yes"),
            new XElement("VN_Nr", new XAttribute("VN_Nr(placeholder int)",11),
                new XElement("EI Nubmer" ,3, new XAttribute("NL Number","EI Number(placeholder int) 0000")),
                    new XElement("Serialnumber", 0),
                        new XElement("GM Number(placeholder int)",2),
                         new XElement("FW Number (placeholder string)")
                         )

            ); // Safe file.
        exampleDocument.Save(@"C:");
        Console.WriteLine(exampleDocument.ToString());

    }
}

}

1 Ответ

0 голосов
/ 19 марта 2020

Хорошо сформированный файл 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);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...