XMLDocument访问最后一个孩子

问题描述:

我正在开发站点地图项目,并有问题;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元素,那么为什么这不起作用?

您需要使用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); 

希望这有助于