以下是我尝试遵循的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相互匹配吗?
答案 0 :(得分:5)
你来非常关闭:
xmlW.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
但是,您可能会发现使用序列化或LINQ-to-XML要容易得多。