XML file creation using XDocument in C#

前端 未结 2 664
故里飘歌
故里飘歌 2020-11-29 18:03

I have a List \"sampleList\" which contains

Data1
Data2
Data3...

The file structure is like

<         


        
2条回答
  •  北荒
    北荒 (楼主)
    2020-11-29 18:45

    LINQ to XML allows this to be much simpler, through three features:

    • You can construct an object without knowing the document it's part of
    • You can construct an object and provide the children as arguments
    • If an argument is iterable, it will be iterated over

    So here you can just do:

    void Main()
    {
        List list = new List
        {
            "Data1", "Data2", "Data3"
        };
    
        XDocument doc =
          new XDocument(
            new XElement("file",
              new XElement("name", new XAttribute("filename", "sample")),
              new XElement("date", new XAttribute("modified", DateTime.Now)),
              new XElement("info",
                list.Select(x => new XElement("data", new XAttribute("value", x)))
              )
            )
          );
    
        doc.Save("Sample.xml");
    }
    

    I've used this code layout deliberately to make the code itself reflect the structure of the document.

    If you want an element that contains a text node, you can construct that just by passing in the text as another constructor argument:

    // Constructs text within element
    XElement element = new XElement("element", "text within element");
    

提交回复
热议问题