XML 动态站点地图 asp.net

XML dynamic SiteMap asp.net

我尝试使用 Asp.net 制作动态站点地图。我正在使用 XML 文件写入其中是

<?xml version="1.0" encoding="utf-8"?>
<urlset>
</urlset>

和 Article.aspx 的代码背后有 url

string xmlpath = @"~/data.xml";
var path = Server.MapPath(xmlpath);
XDocument doc = XDocument.Load(path);
XElement root = new XElement("url");
root.Add(new XElement("loc", url));
root.Add(new XElement("lastmod", DateTime.Now.ToString("yyyy-MMdd")));
root.Add(new XElement("lastmod", "daily"));
root.Add(new XElement("priority", "1.0"));
doc.Element("urlset").Add(root);
doc.Save(path);

此代码运行良好,我正确地获取了 XML 文件问题是 Google 搜索控制台需要我将 xmlns nameSpace 添加到 urlset 元素,因此它必须是这样的:

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

当我将 NameSpace xmlns 添加到 <urlset> 标记时,我收到此错误:

object reference not set

我喜欢通过解析字符串来创建新的 XDocument,尤其是当您有名称空间时

            string xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                         "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">" +
                         "</urlset>";

            XDocument doc = XDocument.Parse(xml);
            XElement urlset = doc.Root;

我在 Microsoft 社区找到了 "madreflection" 提到的答案 后面的代码:

   XNamespace aw = "http://www.sitemaps.org/schemas/sitemap/0.9";
    doc.Element(aw + "urlset").Add(root);

我的 XML 文件是

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