gpt4 book ai didi

c# - 如何从对象列表创建 xml 文件

转载 作者:数据小太阳 更新时间:2023-10-29 01:59:56 25 4
gpt4 key购买 nike

我定义了 3 个类:

public class PublishedPage
{
public string Action { get; private set; }
public string PageGuid { get; set; }
public List<string> SearchableProperties { get; set; }

public PublishedPage()
{
Action = "Published";
SearchableProperties = new List<string>();
}
}

public class DeletedPage
{
public string Action { get; private set; }
public string PageGuid { get; set; }

public DeletedPage()
{
Action = "Deleted";
}
}

public class MovedPage
{
public string Action { get; private set; }
public string PageGuid { get; set; }
public string OldParentGuid { get; set; }
public string NewParentGuid { get; set; }

public MovedPage()
{
Action = "Moved";
}
}

在代码的某处我有这样的东西:

List<PublishedPage> publishedPages = GetPublishedPages();
List<MovedPage> movedPages = GetMovedPages();
List<DeletedPage> deletedPages = GetDeletedPages();

现在我想创建一个包含这 3 个集合的 XML 文件,但不知道如何做。
XML 应该是这样的:

<PublishedPages>
<PublishedPage>
<Action>Published</Action>
<PageGuid>.....</PageGuid>
<SearchableProperties>
<Name>Name 1</Name>
<Name>Name 2</Name>
</SearchablePeoperties>
</PublishedPage>
<PublishedPage>
...
<PublishedPage>
</PublishedPages>
<MovedPages>
...
</MovedPages>
<DeletedPages>
...
</DeletedPages>

如有任何帮助,我们将不胜感激。
谢谢!

最佳答案

即使 XmlSerializer 是最简单的一个,如果您已经知道架构,您也可以使用一些 linq to xml 来完成它:

XElement element = 
new XElement("PublishedPages",
(from page in publishedPages
select new XElement("PublishedPage",
new XElement("Action", page.Action),
new XElement("PageGuid",page.PageGuid),
new XElement("SearchableProperties",
(from property in page.SearchableProperties
select new XElement("Name",property)))
)
)
);

关于c# - 如何从对象列表创建 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3870886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com