如何将列表<字符串>转换为 xml 文档

本文关键字:转换 xml 文档 字符串 列表 | 更新日期: 2023-09-27 18:30:54

我有这个当前的代码:

List<string> BugWSResponseList1 = new List<string>();
Logger.Write("'n'n" + DateTime.Now + " : " + 
             " : START : Creation of a set of Bugs via bug.Add API");
BugWSResponseList1 = CreateBugs(FilePath_EXPRESS_API_BugAdd_CreateBugs_DataFile);

我想将List<string> BugWSResponseList1转换为 xml 文档。

你能建议一种方法吗?

如何将列表<字符串>转换为 xml 文档

您可以轻松地将 LINQ 用于此目的:

var x = new XElement("bugs", 
    BugWSResponseList1.Select(t => new XElement("bug", t)));
Console.WriteLine(x.ToString());

如果你把列表存储在一个类中,你可以写如下的东西:

[XmlType("Foo")]
public class Foo {
  [XmlArray("Items")]
  [XmlArrayItem("Item")]
  public List<string> Data {get; set;}
}

这将导致类似以下内容:

<Foo>
  <Items>
    <Item>Rock</Item>
    <Item>Paper</Item>
    <Item>Scissor</Item>
    <Item>Lizard</Item>
    <Item>Spock</Item>
  </Items>
</Foo>

Using Linq to xml

using System.Xml.Linq;
XElement xml = new XElement("BugWSResponses",
                   (from x in BugWSResponseList1 select
                    new XElement("Bug", x)));

代码示例

List<string> ExampleList = new List<string>{"1", "b"};
var xml = ExampleList.SerializeToXml();

序列化程序

public static string SerializeToXml<T>(this T obj)
{
    var serializer = new DataContractSerializer(obj.GetType());
    using (var writer = new StringWriter())
    using (var stm = new XmlTextWriter(writer))
    {
        serializer.WriteObject(stm, obj);
        return writer.ToString();
    }
}

结果在

<ArrayOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays"><string>1</string><string>b</string></ArrayOfstring>