#c# #linq
#c# #linq
Вопрос:
Я пытаюсь использовать LINQ для создания моей карты сайта. Каждый URL-адрес в карте сайта генерируется с помощью следующего кода C #:
XElement locElement = new XElement("loc", location);
XElement lastmodElement = new XElement("lastmod", modifiedDate.ToString("yyyy-MM-dd"));
XElement changefreqElement = new XElement("changefreq", changeFrequency);
XElement urlElement = new XElement("url");
urlElement.Add(locElement);
urlElement.Add(lastmodElement);
urlElement.Add(changefreqElement);
Когда я создаю свою карту сайта, я получаю 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>
Моя проблема в том, как мне удалить «xmlns =»»» из элемента url? Все правильно, за исключением этого.
Спасибо за вашу помощь!
Ответ №1:
Похоже, вы хотите, чтобы url
элемент (и все подэлементы) были в пространстве имен sitemap, поэтому вы хотите:
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));