繁体   English   中英

从IList创建XML文件

[英]Creating an XML file from an IList

我有一个IList要使用。

我可以遍历列表中的行并由此创建XML文件吗? 如果是这样,我将如何去做?

我一直在尝试使用XDocument,但是我看不到如何使用此方法遍历IList。

如果要KISS ,请将System.Xml.Serialization添加到项目的“引用”中,然后:

using System;
using System.Collections.Generic;
using System.Xml.Serialization;

public class Program {
    static void Main() {
        List<string> Data=new List<string> { "A","B","C","D","E" };

        XmlSerializer XMLs=new XmlSerializer(Data.GetType());
        XMLs.Serialize(Console.Out,Data);

        Console.ReadKey(true);
    }
}

我使用Console.Out为您提供了一个简单的示例,但是您可以选择任何Stream ,很可能是要写入的文件。

在两行中:

IList<string> list  = new List<string> {"A", "B", "C"};
var doc = new XDocument(new XElement("Root", list.Select(x => new XElement("Child", x))));

不要忘记用法:

using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;

如果原始IList是非通用IList ,则需要包括对Enumerable.Cast<T>()的调用,以便Select()可以工作。 例如:

IList list  = new List<string> {"A", "B", "C"};
var doc = new XDocument(new XElement("Root",
    list.Cast<string>().Select(x => new XElement("Child", x))));

如果您只是从字符串列表中获得一个相当简单的结构,那么这将起作用:

var list = new List<string> { "Joe", "Jim", "John" };

var document = new XDocument();
var root = new XElement("Root");
document.Add(root);
list.ForEach(x => root.Add(new XElement("Name", x)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM