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

时间:2010-10-25 11:33:42

标签: 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>

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

<?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>

正如您所看到的,有一个主要区别,我似乎无法重新创建'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();

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

1 个答案:

答案 0 :(得分:5)

你来非常关闭:

xmlW.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");

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

相关问题