关于在.Net中编写XML文件的问题?

Ibr*_*taz 2 c# xml .net-3.5

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

<?xml version="1.0" encoding="UTF-8"?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

   <url>

      <loc>http://www.example.com/</loc>

      <lastmod>2005-01-01</lastmod>

      <changefreq>monthly</changefreq>

      <priority>0.8</priority>

   </url>

</urlset>
Run Code Online (Sandbox Code Playgroud)

以下是我设法制作的内容:

<?xml version="1.0" encoding="utf-8"?>
<urlset>
  <url>
    <loc>http://www.ign.com</loc>
    <lastmod>2005-01-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,有一个主要区别,我似乎无法重新创建'urlset'元素的属性字符串.

以下是我使用的代码:

            // Create the settings object that will define the settings that our writer will use.
        XmlWriterSettings settings = new XmlWriterSettings();
        settings.Encoding = Encoding.UTF8;
        settings.Indent = true;
        settings.OmitXmlDeclaration = false;

        // create the XML writer object.
        XmlWriter xmlW = XmlWriter.Create("SiteMap.xml", settings);

        // write the start header for the XML document.
        xmlW.WriteStartDocument();

        xmlW.WriteStartElement("urlset");

        xmlW.WriteStartElement("url");

        xmlW.WriteElementString("loc", "http://www.ign.com");
        xmlW.WriteElementString("lastmod", "2005-01-01");
        xmlW.WriteElementString("changefreq", "monthly");
        xmlW.WriteElementString("priority", "0.8");

        xmlW.WriteEndElement();

        xmlW.WriteFullEndElement();

        // close the writer.
        xmlW.Close();

        Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

我的代码很简单,但仍然与我给出的符合的样本xml不匹配.你们可以帮助确保两组xml相互匹配吗?

Mar*_*ell 5

非常接近:

xmlW.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
Run Code Online (Sandbox Code Playgroud)

但是,您可能会发现使用序列化或LINQ-to-XML要容易得多.