在.Net(C#)中构建Google产品提要?

在.Net(C#)中构建Google产品提要?,c#,xml,.net-3.5,rss,C#,Xml,.net 3.5,Rss,下面是我试图遵循的模式: <?xml version="1.0"?> <rss version="2.0" xmlns:g="http://base.google.com/ns/1.0"> <channel> <title>The name of your data feed</title> <link>http://www.example.com</link> <

下面是我试图遵循的模式:

  <?xml version="1.0"?>
  <rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
  <channel>
     <title>The name of your data feed</title>
     <link>http://www.example.com</link>
     <description>A description of your content</description>
     <item>
       <title>Red wool sweater</title>
       <link> http://www.example.com/item1-info-page.html</link>
       <description>Comfortable and soft ...    cold winter nights.</description>
       <g:image_link>http://www.example.com/image1.jpg</g:image_link>
       <g:price>25</g:price>
       <g:condition>new</g:condition>
       <g:id>1a</g:id>
     </item>
  </channel>
  </rss>
那些目光敏锐的人会发现我在遵从谷歌产品提要模式方面存在的问题。。。“结束rss标记元素”。。。这是错误的。到目前为止,我已经成功地复制了很多,但最后的标签却没有出现。你们能帮忙吗


另外,如果我做错了什么,或者用错误的方式做了什么,请随意更改我的代码?干杯。

问题是您试图创建一个名为
rss version=“2.0”
的元素。相反,您应该创建一个名为
rss
的元素,并将
version
属性的值设置为
2.0

xw.WriteStartElement("rss");
xw.WriteAttributeString("version", "2.0");

就我个人而言,我会首先使用LINQ to XML,而不是
XmlWriter
,请注意,这是一个更好的API。

如果,而不是这样做:

xw.WriteStartElement("rss version=\"2.0\"");
xw.WriteAttributeString("xmlns", "g", null, "http://base.google.com/ns/1.0");
你是这样做的:

xw.WriteStartElement("rss");
xw.WriteAttributeString("version", "2.0");
xw.WriteAttributeString("xmlns", "g", null, "http://base.google.com/ns/1.0");

我以前从未使用过XmlTextWriter,但我认为您应该能够根据您的代码示例在创建rss标记后添加version属性。(可能想仔细检查我的语法)

蹩脚的方法是把一切都扔进某种类型的垃圾堆,然后替换并重新编写最后一行:DCheers我会试一试。欢迎评论,但你的开发人员比我先进得多,而且当我开始从数据库中提取数据时,我会使用LINQ作为后端。
xw.WriteStartElement("rss version=\"2.0\"");
xw.WriteAttributeString("xmlns", "g", null, "http://base.google.com/ns/1.0");
xw.WriteStartElement("rss");
xw.WriteAttributeString("version", "2.0");
xw.WriteAttributeString("xmlns", "g", null, "http://base.google.com/ns/1.0");