2011-05-20 15 views
6

Site Haritasını oluşturmak için LINQ kullanmaya çalışıyorum. Site haritasında her url'nin aşağıdaki C# kodu ile üretmek geçerli: Benim site haritası oluşturmak zamanLINQ ile XML oluştururken xmlns öğelerinden nasıl kaldırılır?

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); 

, ben benziyor XML olsun şu:

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

Benim sorundur, nasıl kaldırmak yapmak url öğesinden "xmlns =" ​​""? Bunun dışında her şey doğru.

Yardımlarınız için teşekkür ederiz!

cevap

6
İstediğin böylece, için url eleman (ve tüm alt öğeleri) site haritası ad alanında olmak istiyorum gibi geliyor

:

daha geleneksel LINQ için
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); 

veya 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)); 
İlgili konular