首页 新闻 会员 周边

asp.net C# 生成sitemap.xml 问题?

0
悬赏园豆:140 [已关闭问题] 关闭于 2009-12-08 15:49

SiteMap.xml文件如下:

 

<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.scmmjy.com</loc>
<lastmod>2009-11-24</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
</url>
</urlset>

 

 

 

aspx.cs生成代码如下:

 

XmlDocument xml = new XmlDocument();
String mapFileUrl
= Server.MapPath("~/SiteMap.xml");
xml.Load(mapFileUrl);
//XmlNode RootNode = xml.DocumentElement;
XmlNode RootNode = xml.SelectSingleNode(String.Format("urlset[@xmlns=\"{0}\"]", "http://www.sitemaps.org/schemas/sitemap/0.9"));
if (RootNode != null)
{
XmlElement xe
= xml.CreateElement("url");

XmlElement xe_loc
= xml.CreateElement("loc");
xe_loc.InnerText
= "http://www.scmmjy.com";
xe.AppendChild(xe_loc);

XmlElement xe_lastmod
= xml.CreateElement("lastmod");
xe_lastmod.InnerText
= "2009-11-25";
xe.AppendChild(xe_lastmod);

XmlElement xe_changefreq
= xml.CreateElement("changefreq");
xe_changefreq.InnerText
= "always";
xe.AppendChild(xe_changefreq);

XmlElement xe_priority
= xml.CreateElement("priority");
xe_priority.InnerText
= "0.6";
xe.AppendChild(xe_priority);

RootNode.InsertAfter(xe, RootNode.LastChild);
xml.Save(mapFileUrl);
}
else
{
ClientScript.RegisterStartupScript(
this.GetType(), "", "<script>alert('The RootNode is Null');</script>");
}

为什么在遍历节点的时候遍历不到啊,RootNode总是为空的;我把

 

 

XmlNode RootNode = xml.DocumentElement;
//XmlNode RootNode = xml.SelectSingleNode(String.Format("urlset[@xmlns=\"{0}\"]", "http://www.sitemaps.org/schemas/sitemap/0.9"));

互换一下就可以添加了,但是每次添加进去的的<url>节点都有一个空的属性(xmlns=""),如下面 的sitemap.xml(添加后的)代码:

 

 

<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.scmmjy.com</loc>
<lastmod>2009-11-24</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
</url>
<url xmlns="">
<loc>http://www.scmmjy.com/</loc>
<lastmod>2009-11-25</lastmod>
<changefreq>always</changefreq>
<priority>0.6</priority>
</url>
</urlset>

 

我弄了半天终于 知道是<urlset>根节点里面有属性的问题了,去掉属性后,就可以正常添加了;但是加上属性就出问题,请教高手们,在<urlset>根节点有属性的时候怎么向里面的添加<url>子节点???小弟在此谢过了!!!

 

问题补充: 我已经自己解决了,原来在添加节点的时候需要带上命名空间!
JuCheap的主页 JuCheap | 初学一级 | 园豆:150
提问于:2009-12-03 11:41
< >
分享
所有回答(1)
0

是 不 是 xpath不一樣

加XmlNamespaceManager  

woody.wu | 园豆:3621 (老鸟四级) | 2009-12-03 12:50
能具体点嘛?
支持(0) 反对(0) JuCheap | 园豆:150 (初学一级) | 2009-12-03 14:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册