1

我需要从我的 SQL Server 数据库创建一个 xml 提要

我已经看到它以许多不同的方式完成,例如:http: //www.primaryobjects.com/CMS/Article67.aspx

然而,这似乎是错误的..

解决这个问题最好最简单的方法是什么?

我有一个 XSD 文档可以从 BTW 工作。

4

3 回答 3

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 格式的方法......)

于 2009-07-27T09:05:12.223 回答
0

对于创建 rss 提要,我更喜欢http://www.rssdotnet.com/,那里的类工作得非常好,而且由于您正在使用对象,如果您有某种 DAL,它可以很容易地生成您的输出。

于 2009-07-27T09:10:18.953 回答
0

您始终可以直接从数据库中输出 XML,然后进行相应操作以添加正确的根节点和属性。这在 SQL Server 2005 及以后的版本中非常简单。

该答案提供了有关您拥有的某些选项的一些详细信息。

于 2009-07-27T09:16:44.120 回答