C# 在使用LINQ生成XML时,如何从元素中删除XMLN?

C# 在使用LINQ生成XML时,如何从元素中删除XMLN?,c#,linq,C#,Linq,我正在尝试使用LINQ生成我的站点地图。网站地图中的每个url都使用以下C#代码生成: 生成站点地图时,我得到的XML如下所示: <?xml version="1.0" encoding="utf-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url xmlns=""> <loc>http://www.mydomain.com/default.asp

我正在尝试使用LINQ生成我的站点地图。网站地图中的每个url都使用以下C#代码生成:

生成站点地图时,我得到的XML如下所示:

<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url xmlns="">
    <loc>http://www.mydomain.com/default.aspx</loc>
    <lastmod>2011-05-20</lastmod>
    <changefreq>never</changefreq>
  </url>
</urlset>

http://www.mydomain.com/default.aspx
2011-05-20
从未
我的问题是,如何从url元素中删除“xmlns=”“”?除了这个,一切都是正确的


谢谢你的帮助

听起来您希望
url
元素(以及所有子元素)位于站点地图名称空间中,因此您希望:

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

XElement locElement = new XElement(ns + "loc", location);
XElement lastmodElement = new XElement(ns + "lastmod", modifiedDate.ToString("yyyy-MM-dd"));
XElement changefreqElement = new XElement(ns + "changefreq", changeFrequency);

XElement urlElement = new XElement(ns + "url");
urlElement.Add(locElement);
urlElement.Add(lastmodElement);
urlElement.Add(changefreqElement);
对于LINQ到XML,或者更常规地:

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

XElement urlElement = new XElement(ns + "url",
    new XElement(ns + "loc", location);
    new XElement(ns + "lastmod", modifiedDate.ToString("yyyy-MM-dd"),
    new XElement(ns + "changefreq", changeFrequency));
XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9";

XElement urlElement = new XElement(ns + "url",
    new XElement(ns + "loc", location);
    new XElement(ns + "lastmod", modifiedDate.ToString("yyyy-MM-dd"),
    new XElement(ns + "changefreq", changeFrequency));