在.Net(C#)中构建Google商品Feed?

下面是我试图遵循的架构:

   The name of your data feed http://www.example.com A description of your content  Red wool sweater  http://www.example.com/item1-info-page.html Comfortable and soft ... cold winter nights. http://www.example.com/image1.jpg 25 new 1a    

以下是我能够制作的:

    The name of your data feed http://www.google.com A description of your content  Red Wool Sweater http://www.google.com/Red-Wool-Sweater Comfortable and soft, this sweater will keep you warm on those cold winter nights. http://www.example.com/image1.jpg 25 new 1a    

下面是我为实现此目的而编写的代码(上文):

  // create and instantiate the writer object. XmlTextWriter xw = new XmlTextWriter("Products.xml", null); // use indenting. xw.Formatting = Formatting.Indented; // write the start of the document. xw.WriteStartDocument(); xw.WriteStartElement("rss version=\"2.0\""); xw.WriteAttributeString("xmlns", "g", null, "http://base.google.com/ns/1.0"); xw.WriteStartElement("channel"); xw.WriteElementString("title", "The name of your data feed"); xw.WriteElementString("link", "http://www.google.com"); xw.WriteElementString("description", "A description of your content"); xw.WriteStartElement("item"); xw.WriteElementString("title", "Red Wool Sweater"); xw.WriteElementString("link", "http://www.google.com/Red-Wool-Sweater"); xw.WriteElementString("description", "Comfortable and soft, this sweater will keep you warm on those cold winter nights."); xw.WriteElementString("g:image_link", "http://www.example.com/image1.jpg"); xw.WriteElementString("g:price", "25"); xw.WriteElementString("g:condition", "new"); xw.WriteElementString("g:id", "1a"); // write the end element. xw.WriteEndElement(); xw.WriteEndElement(); xw.WriteEndElement(); // write the end of the document. xw.WriteEndDocument(); // close the writer. xw.Close(); // press enter to exit. Console.ReadKey(); 

那些热切的眼睛,会发现我符合谷歌产品饲料架构的问题……“关闭rss标签元素”……是错误的。 到目前为止,我已经设法复制了很多,但结束标签却没有。 你们能帮忙吗?

另外,如果我做错了什么或者以错误的方式做错,我觉得可以自由更改我的代码吗? 干杯。

如果,而不是这样做:

 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标签后添加版本属性,具体取决于你的代码示例。 (可能要仔细检查我的语法)

问题是您正在尝试创建名称rss version="2.0"的元素。 相反,您应该创建一个名为rss的元素,并将version属性设置为值为2.0

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

我个人认为我会使用LINQ to XML而不是XmlWriter ,请注意 – 它是一个更好的API。