Как записать файл sitemap с помощью XmlWriter?

#c# #xml #sitemap #xmlwriter

#c# #xml #Карта сайта #xmlwriter

Вопрос:

Я пытаюсь автоматизировать создание карты сайта.

Я пытаюсь сгенерировать этот вывод xml

 <?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
  <url>
    <loc>http://www.example.com/foo.html</loc>
    <lastmod>2018-06-04</lastmod>
  </url>
</urlset>
  

У меня есть

 using (XmlWriter writer = XmlWriter.Create(@"books.xml"))
{
    writer.WriteStartElement("urlset");
    writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
    writer.WriteEndElement();
    writer.Flush();
}
  

он отображает это <?xml version="1.0" encoding="utf-8"?><urlset

похоже, у него проблемы с xmlns , если я удалю это, это сработает.

Ответ №1:

Используйте перегрузку https://learn.microsoft.com/en-us/dotnet/api/system.xml.xmlwriter.writestartelement?view=netframework-4.7.2#System_Xml_XmlWriter_WriteStartElement_System_String_System_String_ из WriteStartElement , например

 string ns = "http://www.sitemaps.org/schemas/sitemap/0.9";
  

и затем

 writer.WriteStartElement("urlset", ns);
writer.WriteStartElement("url", ns);
  

и так далее.