时间:2022-07-18 14:21:01 | 来源:建站知识
时间:2022-07-18 14:21:01 来源:建站知识
1.此处为Demo,借鉴别人的生成 xml
//创建xml文件方法一
protected void btn1_OnClick(object sender, EventArgs e)
{
XmlText xmltext;
XmlDocument xmldoc = new XmlDocument();
//加入XML的声明段落
XmlNode xmlnode = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
xmldoc.AppendChild(xmlnode);
//加入一个根元素
XmlElement xmlelem = xmldoc.CreateElement("", "bookstore", "");
xmltext = xmldoc.CreateTextNode("");
xmlelem.AppendChild(xmltext);
xmldoc.AppendChild(xmlelem);
//加入一个子元素
XmlElement xmlelem1 = xmldoc.CreateElement("", "book", "");
xmltext = xmldoc.CreateTextNode("");
xmlelem1.AppendChild(xmltext);
//为子元素"book"增加两个属性
xmlelem1.SetAttribute("genre", "", "fantasy");
xmlelem1.SetAttribute("ISBN", "2-3631-4");
xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1);
//创建三个子元素的子元素
XmlElement xmlelem2 = xmldoc.CreateElement("", "title", "");
xmltext = xmldoc.CreateTextNode("Oberon's Legacy");
xmlelem2.AppendChild(xmltext);
xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1).AppendChild(xmlelem2);
XmlElement xmlelem3 = xmldoc.CreateElement("", "author", "");
xmltext = xmldoc.CreateTextNode("Corets, Eva");
xmlelem3.AppendChild(xmltext);
xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1).AppendChild(xmlelem3);
XmlElement xmlelem4 = xmldoc.CreateElement("", "price", "");
xmltext = xmldoc.CreateTextNode("5.95");
xmlelem4.AppendChild(xmltext);
xmldoc.ChildNodes.Item(1).AppendChild(xmlelem1).AppendChild(xmlelem4);
xmldoc.Save(Server.MapPath("bookstore.xml")); //保存
}
//创建xml文件方法二
protected void btn2_OnClick(object sender, EventArgs e)
{
XmlDocument xmldoc = new XmlDocument(); //创建空的XML文档
xmldoc.LoadXml("" +
"" +
"" +
"" +
"Corets, Eva" +
"5.95" +
"" +
"");
xmldoc.Save(Server.MapPath("bookstore2.xml")); //保存
}
如果如下:
Corets, Eva
5.95
不是我想要的网站地图xml文件。
2.以下是我自己根据实际情况写的
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Xml;
namespace Helper
{
public class SitemapXml
{
private const string Xmlns = "";
private const string XmlnsXsi = "";
private const string XsiSchemaLocation = " ";
///
/// 生成SiteMap地图
///
///需要生成的 对象列表
///设置文件保存名称
///更新周期
///xml文件保存路径
///
public static bool CreateSiteMapXml(ListsiteMaps, string savePath = "/", string saveFileName = "sitemap", string changefreq = "weekly")
{
//保存创建好的XML文档
string filename = saveFileName + ".xml";
string path = System.Web.HttpContext.Current.Server.MapPath(savePath) + filename;
//先创建XML,返回路径
var xmldoc = new XmlDocument();
//加入XML的声明段落,
XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", "UTF-8", null);
xmldoc.AppendChild(xmldecl);
//加入一个根元素
XmlNode xmlelem = xmldoc.CreateElement("", "urlset", "");
//添加属性
XmlAttribute attr = xmldoc.CreateAttribute("xmlns");
attr.Value = Xmlns;
if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);
attr = xmldoc.CreateAttribute("xmlns:xsi");
attr.Value = XmlnsXsi;
if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);
attr = xmldoc.CreateAttribute("xsi:schemaLocation");
attr.Value = XsiSchemaLocation;
if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);
xmldoc.AppendChild(xmlelem);
string lastmod = DateTime.Now.ToString("yyyy-MM-dd");
for (int i = 0; i < siteMaps.Count; i++)
{
XmlNode root = xmldoc.SelectSingleNode("urlset");//查找
if (root == null)
{
//加入一个根元素
xmlelem = xmldoc.CreateElement("", "urlset", "");
//添加属性
attr = xmldoc.CreateAttribute("xmlns");
attr.Value = Xmlns;
if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);
attr = xmldoc.CreateAttribute("xmlns:xsi");
attr.Value = XmlnsXsi;
if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);
attr = xmldoc.CreateAttribute("xsi:schemaLocation");
attr.Value = XsiSchemaLocation;
if (xmlelem.Attributes != null) xmlelem.Attributes.SetNamedItem(attr);
xmldoc.AppendChild(xmlelem);
i = 0;
continue;
}
XmlElement xe1 = xmldoc.CreateElement("url");//创建一个节点
XmlElement xmlelem1 = xmldoc.CreateElement("", "loc", "");
XmlText xmltext = xmldoc.CreateTextNode(siteMaps[i].Loc);
xmlelem1.AppendChild(xmltext);
xe1.AppendChild(xmlelem1);
xmlelem1 = xmldoc.CreateElement("", "priority", "");
xmltext = xmldoc.CreateTextNode(siteMaps[i].Priority);
xmlelem1.AppendChild(xmltext);
xe1.AppendChild(xmlelem1);
xmlelem1 = xmldoc.CreateElement("", "lastmod", "");
xmltext = xmldoc.CreateTextNode(lastmod);
xmlelem1.AppendChild(xmltext);
xe1.AppendChild(xmlelem1);
xmlelem1 = xmldoc.CreateElement("", "changefreq", "");
xmltext = xmldoc.CreateTextNode(changefreq);
xmlelem1.AppendChild(xmltext);
xe1.AppendChild(xmlelem1);
root.AppendChild(xe1);//添加到节点中
}
try
{
//然后在保存到源位置
xmldoc.AppendChild(xmlelem);
xmldoc.Save(path);
return true;
}
catch (Exception)
{
return false;
}
}
}
///
///
///
///
///0.5
///2014-08-19
///weekly
///
///
///
public class SiteMap
{
///
/// 链接地址
/// 如:
///
public string Loc { get; set; }
///
/// 网页权重
/// 0.1 - 1
///
public string Priority { get; set; }
///
/// 生成日期
/// 2014-08-19
///
public string Lastmod { get; set; }
///
/// 更新周期
/// always 经常
/// hourly 每小时
/// daily 每天
/// weekly 每周
/// monthly 每月
/// yearly 每年
/// never 从不
///
public string Changefreq { get; set; }
}
}
生成的结果为:
1.00
2014-08-19
weekly
希望可以帮助到你!
SEO专题推荐:
关键词优化专题:网站关键词优化没效果?来这里学习最实用的关键词优化技巧!
内链优化专题:最能提升网站权重的内链部署优化技巧与方法
外链建设专题:高质量自然外链怎么做?读完这些你将质的飞跃
网站降权专题:2015年最有用的网站降权、被K、被黑、被攻击的解决方法
用户体验专题:学习完这些,作为站长的你可以秒懂如何做网站用户体验
行业网站专题:优化行业网站的“葵花宝典”看完后无优化压力
关键词:地图