C# 生成视频站点地图的工作方式与预期不完全相同

C# 生成视频站点地图的工作方式与预期不完全相同,c#,xml-sitemap,C#,Xml Sitemap,好的,我在这里尝试了很多方法,但是无法获得元素字符串的正确输出 以下是我想要的结果: <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"> 此外,我尝试从中使用此代码,但它给了我一个错误: writer.WriteStartElement("urlset"); writer.WriteAttr

好的,我在这里尝试了很多方法,但是无法获得元素字符串的正确输出

以下是我想要的结果:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
此外,我尝试从中使用此代码,但它给了我一个错误:

writer.WriteStartElement("urlset");
writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
writer.WriteAttributeString("xmlns", "video", null, "http://www.google.com/schemas/sitemap-video/1.1");
这就是我得到的错误:

无法在同一开始元素标记中将前缀“”从“”重新定义为“”

我知道我在这里遗漏了一些东西,只是不确定是什么,我也通过谷歌搜索了一下,但找不到任何有用的东西。 我也尝试过改变函数变量的顺序,只是不能让它正常工作。 有人知道发生了什么吗? 干杯

好的,我明白了:

writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
writer.WriteAttributeString("xmlns", "video", null, "http://www.google.com/schemas/sitemap-video/1.1");
将输出:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
更新 我修改了代码,因为price元素需要currency属性。它位于/*价格*/评论之间

writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
writer.WriteAttributeString("xmlns", "video", null, "http://www.google.com/schemas/sitemap-video/1.1");
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
writer.WriteStartDocument();
writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
writer.WriteAttributeString("xmlns", "video", null, "http://www.google.com/schemas/sitemap-video/1.1");

writer.WriteStartElement("url");
writer.WriteElementString("loc", "https://youtube.com");
writer.WriteStartElement("video", "video", "http://www.google.com/schemas/sitemap-video/1.1");
writer.WriteElementString("video", "thumbnail_loc", null, "https://company.com/image-thumb.jpeg");
writer.WriteElementString("video", "title", null, "this is the video title");
writer.WriteElementString("video", "description", null, "this is a video description");
writer.WriteElementString("video", "content_loc", null, "https://company.com/cool-product");
writer.WriteElementString("video", "family_friendly", null, "yes");
/* Price */
writer.WriteStartElement("video", "price", "http://www.google.com/schemas/sitemap-video/1.1");
writer.WriteAttributeString("currency", "AUD");
writer.WriteString("100.00");
writer.WriteEndElement();//video:uploader
/* Price */
writer.WriteElementString("video", "requires_subscription", null, "no");
writer.WriteStartElement("video", "uploader", "http://www.google.com/schemas/sitemap-video/1.1");
writer.WriteAttributeString("info", "https://company.com");
writer.WriteString("My Company");
writer.WriteEndElement();//video:uploader
writer.WriteElementString("video", "live", null, "yes");
writer.WriteEndElement();//video:video
writer.WriteEndElement();//url

writer.WriteEndElement();// urlset
writer.WriteEndDocument();