如何将列表<字符串>转换为 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 文档。
你能建议一种方法吗?
您可以轻松地将 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>