2013-07-21 149 views
2

我正在開發站點地圖項目,並有問題;XMLDocument訪問最後一個孩子

這是我的xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<urlset> 
<url ID="1"> 
<loc>http://www.serkancamur.com/Site/Index/sayfa/Hakkimda</loc> 
<changefreq>Daily</changefreq> 
<priority>0,9</priority> 
</url> 
</urlset> 

這是我的C#代碼:

int ID = Convert.ToInt32(doc.SelectSingleNode("urlset").LastChild.Attributes["ID"].Value); 

這工作,但看網址設定元素的屬性:

<?xml version="1.0" encoding="UTF-8"?> 
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" schemaLocation="http://www.serkancamur.com/sitemap.xsd"> 
<url ID="1"> 
<loc>http://www.serkancamur.com/Site/Index/sayfa/Hakkimda</loc> 
<changefreq>Daily</changefreq> 
<priority>0,9</priority> 
</url> 
</urlset> 

我只加屬性urlset元素,那麼爲什麼這不起作用?

回答

1

您需要使用XmlNamespaceManager

試試這個

int id = 0; 
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); 
    nsmgr.AddNamespace("x", "http://www.sitemaps.org/schemas/sitemap/0.9"); 
    var urlset = doc.SelectSingleNode("//x:urlset", nsmgr); 
    id = Convert.ToInt32(urlset.LastChild.Attributes["ID"].Value); 

希望這有助於