我需要从我的 SQL Server 数据库创建一个 xml 提要
我已经看到它以许多不同的方式完成,例如:http: //www.primaryobjects.com/CMS/Article67.aspx
然而,这似乎是错误的..
解决这个问题最好最简单的方法是什么?
我有一个 XSD 文档可以从 BTW 工作。
我需要从我的 SQL Server 数据库创建一个 xml 提要
我已经看到它以许多不同的方式完成,例如:http: //www.primaryobjects.com/CMS/Article67.aspx
然而,这似乎是错误的..
解决这个问题最好最简单的方法是什么?
我有一个 XSD 文档可以从 BTW 工作。
就我个人而言,我发现 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 格式的方法......)
对于创建 rss 提要,我更喜欢http://www.rssdotnet.com/,那里的类工作得非常好,而且由于您正在使用对象,如果您有某种 DAL,它可以很容易地生成您的输出。
您始终可以直接从数据库中输出 XML,然后进行相应操作以添加正确的根节点和属性。这在 SQL Server 2005 及以后的版本中非常简单。
该答案提供了有关您拥有的某些选项的一些详细信息。