我需要从我的SQL Server数据库创建一个xml提要
我已经看到它以许多不同的方式完成,例如:http://www.primaryobjects.com/CMS/Article67.aspx
然而,这似乎是错误的..
最简单的方法是什么?
我有一个可以从BTW工作的XSD文档。
答案 0 :(得分:1)
就我个人而言,我发现LINQ to SQL + LINQ to XML工作得非常好,只要结果足够小以适应内存的舒适性(即它对流式传输解决方案不太好)。
例如,我有一个(非常大的)语句,它将我数据库中的项目转换为RSS提要。它基本上是一种声明式方法,并且效果很好。它是这样的:
XDocument doc = new XDocument(
new XDeclaration("1.0", "UTF-8", "yes"),
new XElement("rss",
new XAttribute("version", "2.0"),
new XElement("channel",
new { title="C# in Depth news",
link ="http://csharpindepth.com/News.aspx",
description = "C# in Depth news items",
language = "en-gb",
generator = "LINQ",
docs = "http://blogs.law.harvard.edu/tech/rss",
pubDate = DateTimeOffset.UtcNow.ToString
(Rfc822Format, CultureInfo.InvariantCulture),
lastBuiltDate = items.First().CreatedDate.ToString
(Rfc822Format, CultureInfo.InvariantCulture),
}.AsXElements(),
items.Select(item =>
new XElement("item",
new { title=item.Title,
link=string.Format(LinkFormat, item.NewsItemID),
description=item.Summary,
author="skeet@pobox.com",
pubDate = item.CreatedDate.ToString
(Rfc822Format, CultureInfo.InvariantCulture)
}.AsXElements()
)
)
)
)
);
使用了一些扩展方法,我必须将匿名类型转换为XElements - 它可以在MiscUtil中使用,并且显而易见。
(是的,我应该有一种方法将日期转换为Rfc822格式...)
答案 1 :(得分:0)
对于创建rss feed我更喜欢http://www.rssdotnet.com/,这些类工作得非常好,因为你正在使用对象,如果你有某种DAL,它可以很容易地生成你的输出。
答案 2 :(得分:0)
您可以始终直接从数据库输出XML,然后相应地进行操作以添加正确的根节点和属性。这在SQL Server 2005及更高版本中非常简单。
This answer提供了一些您拥有的选项的详细信息。