如何向.NET SyndicationFeed添加CSS引用?

如何向.NET SyndicationFeed添加CSS引用?,css,xslt,rss,atom-feed,syndication-feed,Css,Xslt,Rss,Atom Feed,Syndication Feed,我用许多SyndicationItems创建了一个简单的SyndicationFeed。每个SyndicationItem都有HtmlContent。HtmlContent是一个表。这显示OK,但现在我需要在桌子上设置最少的样式/填充。我相信我需要添加一个样式表引用,比如 <?xml-stylesheet type="text/css" href="http://you.com/rss.css" ?> <?xml-stylesheet type="text/css" href

我用许多SyndicationItems创建了一个简单的SyndicationFeed。每个SyndicationItem都有HtmlContent。HtmlContent是一个表。这显示OK,但现在我需要在桌子上设置最少的样式/填充。我相信我需要添加一个样式表引用,比如

<?xml-stylesheet type="text/css" href="http://you.com/rss.css" ?>
<?xml-stylesheet type="text/css" href="http://you.com/rss.css" ?>

但我不知道如何使用.NET4.5SyndicationFeed或Atom10FeedFormatter类实现这一点

下面是由WCF服务生成的(伪)代码

var feed = new feed(......);
var xqn = new XmlQualifiedName( "mysys" , "http://www.w3.org/2000/xmlns/" );
feed.AttributeExtensions.Add( xqn , myuri );
feed.ElementExtensions.Add( "creator" , "sys" , teaminfo );
feed.Authors.Add( new SyndicationPerson( emailaddr) );
feed.Categories.Add( new SyndicationCategory( mycategory ) );
feed.Description = new TextSyndicationContent( feedDesc );
feed.Copyright = SyndicationContent.CreatePlaintextContent(copyr);
feed.Language = "en-us";
feed.ImageUrl = new Uri( myuri + "/logo" );
var dbitems = GetListFromDb(key);
var syndItems = new List<synitem>();
foreach (var item in dbitems)
{
    var htmlContent =
        SyndicationContent.CreateHtmlContent( MakeHtmlFromStuff(item) );
    var itemUri = new Uri( myuri + itemuri );
    var synitem = new synitem( item.code , htmlContent , itemUri , item.key , DateTimeOffset.UtcNow );
    syndItems.Add( synitem);
}
feed.Items = syndItems;
return new Atom10FeedFormatter(feed);
var提要=新提要(……);
var xqn=新的XmlQualifiedName(“mysys”http://www.w3.org/2000/xmlns/" );
Add(xqn,myuri);
feed.ElementExtensions.Add(“创建者”、“系统”、“团队信息”);
feed.Authors.Add(newsyndicationperson(emailaddr));
添加(新的SyndicationCategory(mycategory));
feed.Description=新文本联合内容(feedDesc);
feed.Copyright=SyndicationContent.CreatePlaintextContent(copyr);
feed.Language=“en-us”;
feed.ImageUrl=新Uri(myuri+“/logo”);
var dbitems=GetListFromDb(键);
var syndItems=新列表();
foreach(dbitems中的var项)
{
var htmlContent=
CreateHtmlContent(MakeHtmlFromStuff(item));
var itemUri=新Uri(myuri+itemUri);
var synitem=新的synitem(item.code、htmlContent、itemUri、item.key、DateTimeOffset.UtcNow);
syndItems.Add(synditem);
}
feed.Items=syndItems;
返回新的Atom10FeedFormatter(提要);
希望不要错过一些明显的东西。所有想法都受到赞赏

谢谢

我相信我需要添加一个样式表引用,比如

<?xml-stylesheet type="text/css" href="http://you.com/rss.css" ?>
<?xml-stylesheet type="text/css" href="http://you.com/rss.css" ?>
或:


在相应的XmlWriter实例上调用方法,向其传递两个必需的参数——PI的名称(在本例中为
“xml样式表”
)和PI的文本(在本例中为
“type='text/css'href=”http://you.com/rss.css“
)。

您的代码示例被吃掉了。谢谢,这让我接近了。但我正在从web服务返回文本,无法使用临时文件。我开始写MemoryStream,但应用程序类型是“application/ioctet stream”,因此它在IE中无法正确显示(将其用作RSS阅读器测试应用程序)。谢谢。@Snowy,除了你在这七天的最后一天和评论中提到这一事实之外,我相信有一种标准的方法可以将内存流转换成字符串,然后将此字符串作为响应发送。感谢你在漫长的寒假回来的作品中不够完整。谢谢,赏金奖授予。我知道将MemoryStream取出的“标准方式”,我认为可能有一种很酷的快捷方式,在发送之前不需要在内部复制到字符串中。再次感谢。@Snowy,不客气。当我有时间时,我可以查找有关新问题的信息。
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='http://you.com/rss.css'?>
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
    <channel CustomAttribute="Value">
        <title>Feed Title</title>
        <link>http://feed/Alternate/Link</link>
        <description>This is a sample feed</description>
        <language>en-us</language>
        <copyright>Copyright 2007</copyright>
        <managingEditor>jesper@contoso.com</managingEditor>
        <lastBuildDate>Fri, 28 Dec 2012 19:50:18 -0800</lastBuildDate>
        <category domain="CategoryScheme">FeedCategory</category>
        <generator>Sample Code</generator>
        <a10:contributor>
            <a10:name>Lene Aaling</a10:name>
            <a10:uri>http://lene/aaling</a10:uri>
            <a10:email>lene@contoso.com</a10:email>
        </a10:contributor>
        <image>
            <url>http://server/image.jpg</url>
            <title>Feed Title</title>
            <link>http://feed/Alternate/Link</link>
        </image>
        <a10:id>FeedID</a10:id>
        <a10:link rel="alternate" type="text/html" title="Link Title" length="1000" href="http://server/link" />
        <CustomElement>Some text</CustomElement>
        <item>
            <guid isPermaLink="false">ItemID</guid>
            <link>http://server/items</link>
            <title>Item Title</title>
            <description>Some text content</description>
            <a10:updated>2012-12-28T19:50:18-08:00</a10:updated>
        </item>
    </channel>
</rss>
atomFormatter.WriteTo(atomWriter);
rssFormatter.WriteTo(rssWriter);