【发布时间】:2009-08-10 16:12:03
【问题描述】:
Linq to XML 领域的新手...
我有一个带有结果的 Linq 查询,我想将这些结果转换为 XML。我猜一定有一个相对简单的方法可以做到这一点,但我找不到它......
谢谢!
【问题讨论】:
标签: c# linq linq-to-xml
Linq to XML 领域的新手...
我有一个带有结果的 Linq 查询,我想将这些结果转换为 XML。我猜一定有一个相对简单的方法可以做到这一点,但我找不到它......
谢谢!
【问题讨论】:
标签: c# linq linq-to-xml
一个例子。你应该明白了。
XElement xml = new XElement("companies",
from company in db.CustomerCompanies
orderby company.CompanyName
select new XElement("company",
new XAttribute("CompanyId", company.CompanyId),
new XElement("CompanyName", company.CompanyName),
new XElement("SapNumber", company.SapNumber),
new XElement("RootCompanyId", company.RootCompanyId),
new XElement("ParentCompanyId", company.ParentCompanyId)
)
);
【讨论】:
您的 Linq 查询将返回某种对象图;获得结果后,您可以使用任何方法将其转换为 XML,就像使用标准对象一样。 Linq to XML 包括新的 XML 类,它们提供了一种创建 XML 的方法(请参阅 rAyt 对此的回答),但您也可以使用 XmlSerializer 并将属性放在您的类/属性上以控制精确的 XML 输出。
【讨论】:
以下代码适用于“linq to entity”。数据必须在内存中,使用 .ToArray() 完成,这样才能对其进行处理。
XElement xml = new XElement("companies",
from company in db.CustomerCompanies.AsEnumerable()
orderby company.CompanyName
select new XElement("company",
new XAttribute("CompanyId", company.CompanyId),
new XElement("CompanyName", company.CompanyName),
new XElement("SapNumber", company.SapNumber),
new XElement("RootCompanyId", company.RootCompanyId),
new XElement("ParentCompanyId", company.ParentCompanyId)
)
);
【讨论】: