using System.Xml; 递归Xml节点 递归Xml节点 #region 递归Xml节点 /**//**//**//// <summary> /// 递归Xml节点 /// </summary> /// <param name="xe">子元素</param> protected void ChildNode(XmlElement xe) ...{ XmlNodeList xnl = xe.ChildNodes; foreach (XmlNode xn in xnl) ...{ if (xn.ChildNodes.Count > 1) ...{ XmlElement xe1 = (XmlElement)xn; ChildNode(xe1); } else ...{ Response.Write(xn.InnerText + "<br />"); } } } #endregion 读取Xml 读取Xml #region 读取Xml /**//**//**//// <summary> /// 读取Xml /// </summary> /// <param name="XMLPath">文件路径</param> protected void ReadXML(string XMLPath) ...{ // 创建一个XmlTextReader类的对象并调用Read方法来读取文件 XmlTextReader reader = new XmlTextReader(XMLPath); XmlDataDocument xd = new XmlDataDocument(); xd.Load(reader); XmlNodeList xnl = xd.SelectSingleNode("Article_List").ChildNodes;//读取所有结点 foreach (XmlNode xn in xnl) ...{ XmlElement xe = (XmlElement)xn;//转换节点为一个元素 Response.Write(xe.GetAttribute("id") + "<br />"); ChildNode(xe); } reader.Close(); } #endregion 方法1:创建Xml( string CreatePath, System.Text.Encoding ED) 方法1:创建Xml(string CreatePath, System.Text.Encoding ED) #region 方法1:创建Xml(string CreatePath, System.Text.Encoding ED) /**//**//**//// <summary> /// 方法1:创建Xml /// </summary> /// <param name="CreatePath">创建路径</param> /// <param name="ED">编码</param> protected void CreateXML(string CreatePath, System.Text.Encoding ED) ...{ // 创建XmlTextWriter类的实例对象 XmlTextWriter writer = new XmlTextWriter(CreatePath, ED); // 开始写过程,调用WriteStartDocument方法 writer.WriteStartDocument(); // 写入说明 writer.WriteComment("XmlTextWriter简单例子"); // 写入内容 writer.WriteStartElement("Article_List", ""); writer.WriteStartElement("Article", ""); writer.WriteStartAttribute("id"); writer.WriteString("1"); writer.WriteEndAttribute(); writer.WriteStartElement("Article_title", ""); writer.WriteString("今天的天气不错"); writer.WriteEndElement(); writer.WriteStartElement("Article_AddDate", ""); writer.WriteStartAttribute("type"); writer.WriteString("yyyy-MM-dd HH:mm:ss"); writer.WriteEndAttribute(); writer.WriteString(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteStartElement("Article", ""); writer.WriteStartAttribute("id"); writer.WriteString("2"); writer.WriteEndAttribute(); writer.WriteStartElement("Article_title", ""); writer.WriteString("明天是个好日子"); writer.WriteEndElement(); writer.WriteStartElement("Article_AddDate", ""); writer.WriteStartAttribute("type"); writer.WriteString("yyyy-MM-dd HH:mm:ss"); writer.WriteEndAttribute(); writer.WriteString(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss")); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); // 写文档结束,调用WriteEndDocument方法 writer.WriteEndDocument(); writer.Close(); } #endregion 方法2:创建Xml( string CreatePath, string ED, string sl) 方法2:创建Xml(string CreatePath, string ED, string sl) #region 方法2:创建Xml(string CreatePath, string ED, string sl) /**//**//**//// <summary> /// 方法2:创建Xml /// </summary> /// <param name="CreatePath">创建路径</param> /// <param name="ED">编码</param> /// <param name="sl">Standalone属性</param> protected void CreateXML(string CreatePath, string ED, string sl) ...{ XmlDocument xd = new XmlDocument();//表示XML文档 XmlDeclaration xde;//表示 XML 声明节点:<?xml version='1.0'?> xde = xd.CreateXmlDeclaration("1.0", null, null); xde.Encoding = ED; xde.Standalone = sl; xd.AppendChild(xde);//<?xml version="1.0" encoding="gb2312" standalone="yes"?>生成结束 XmlComment xc; xc = xd.CreateComment("XmlDocument简单例子"); xd.AppendChild(xc); XmlElement xe = xd.CreateElement("Article_List");//创建一个Article_List根元素 xd.AppendChild(xe);//Article_List根元素创建完成 XmlNode xn = xd.SelectSingleNode("Article_List");//查找<Article_List> XmlElement xe_1 = xd.CreateElement("Article");//在<Article_List>之下创建元素<Article> xe_1.SetAttribute("id", "1");//指定属性的属性值 XmlElement xe_1_1 = xd.CreateElement("Article_title");//在<Article>之下创建元素<Article_title> xe_1_1.InnerText = "今天的天气不错";//指定属性文本节点 xe_1.AppendChild(xe_1_1);//完成子节点<Article_title> xe_1_1 = xd.CreateElement("Article_AddDate");//在<Article>之下创建元素<Article_AddDate> xe_1_1.SetAttribute("type", "yyyy-MM-dd HH:mm:ss");//指定属性的属性值 xe_1_1.InnerText = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//指定属性文本节点 xe_1.AppendChild(xe_1_1);//完成子节点<Article_AddDate> xn.AppendChild(xe_1);//完成子节点<Article> XmlElement xe_2 = xd.CreateElement("Article");//在<Article_List>之下创建元素<Article> xe_2.SetAttribute("id", "2");//指定属性的属性值 XmlElement xe_2_1 = xd.CreateElement("Article_title");//在<Article>之下创建元素<Article_title> xe_2_1.InnerText = "明天是个好日子";//指定属性文本节点 xe_2.AppendChild(xe_2_1);//完成子节点<Article_title> xe_2_1 = xd.CreateElement("Article_AddDate");//在<Article>之下创建元素<Article_AddDate> xe_2_1.SetAttribute("type", "yyyy-MM-dd HH:mm:ss");//指定属性的属性值 xe_2_1.InnerText = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd HH:mm:ss");//指定属性文本节点 xe_2.AppendChild(xe_2_1);//完成子节点<Article_AddDate> xn.AppendChild(xe_2);//完成子节点<Article> xd.Save(CreatePath); } #endregion 插入节点 插入节点 #region 插入节点 /**//**//**//// <summary> /// 插入节点 /// </summary> /// <param name="XMLPath">文件路径</param> protected void Add_Node(string XMLPath) ...{ XmlDocument xd = new XmlDocument(); xd.Load(XMLPath); XmlNode xn = xd.SelectSingleNode("Article_List");//查找<Article_List> XmlElement xe = xd.CreateElement("Article");//创建一个<Article>节点 xe.SetAttribute("id", "3");//设置该节点id属性 XmlElement xe_1 = xd.CreateElement("Article_title"); xe_1.InnerText = "后天就是大礼拜";//设置文本节点 xe.AppendChild(xe_1);//添加到<Article>节点中 xe_1 = xd.CreateElement("Article_AddDate"); xe_1.SetAttribute("type", "yyyy-MM-dd HH:mm:ss");//指定属性的属性值 xe_1.InnerText = DateTime.Now.AddDays(2).ToString("yyyy-MM-dd HH:mm:ss");//指定属性文本节点 xe.AppendChild(xe_1); xn.AppendChild(xe);//添加到<Article_List>节点中 xe = xd.CreateElement("Article");//创建一个<Article>节点 xe.SetAttribute("id", "4");//设置该节点id属性 xe_1 = xd.CreateElement("Article_title"); xe_1.InnerText = "大后天有饭吃";//设置文本节点 xe.AppendChild(xe_1);//添加到<Article>节点中 xe_1 = xd.CreateElement("Article_AddDate"); xe_1.SetAttribute("type", "yyyy-MM-dd HH:mm:ss");//指定属性的属性值 xe_1.InnerText = DateTime.Now.AddDays(3).ToString("yyyy-MM-dd HH:mm:ss");//指定属性文本节点 xe.AppendChild(xe_1); xn.AppendChild(xe);//添加到<Article_List>节点中 xd.Save(XMLPath); } #endregion 修改节点 修改节点 #region 修改节点 /**//**//**//// <summary> /// 修改节点 /// </summary> /// <param name="XMLPath">文件路径</param> protected void Edit_Node(string XMLPath) ...{ XmlDocument xd = new XmlDocument(); xd.Load(XMLPath); XmlNodeList xnl = xd.SelectSingleNode("Article_List").ChildNodes;//获取Article_List节点的所有子节点 foreach (XmlNode xn in xnl)//遍历所有子节点 ...{ XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型 if (xe.GetAttribute("id") == "2")//如果id属性值为“2” ...{ xe.SetAttribute("id", "new2");//则修改该属性为“new2” XmlNodeList xnl_1 = xe.ChildNodes;//继续获取xe子节点的所有子节点 foreach (XmlNode xn_1 in xnl_1)//遍历 ...{ XmlElement xe_1 = (XmlElement)xn_1;//转换类型 if (xe_1.Name == "Article_title")//如果找到 ...{ xe_1.InnerText = "昨天是个坏天气";//则修改 break;//找到退出 } } break; } } xd.Save(XMLPath);//保存。 } #endregion 删除节点 删除节点 #region 删除节点 /**//**//**//// <summary> /// 删除节点 /// </summary> /// <param name="XMLPath">文件路径</param> protected void Delete_Node(string XMLPath) ...{ XmlDocument xd = new XmlDocument(); xd.Load(XMLPath); XmlNodeList xnl = xd.SelectSingleNode("Article_List").ChildNodes;//获取Article_List节点的所有子节点 foreach (XmlNode xn in xnl) ...{ XmlElement xe = (XmlElement)xn; if (xe.GetAttribute("id") == "3") ...{ xe.RemoveAttribute("id");//删除genre属性 } else if (xe.GetAttribute("id") == "4") ...{ xe.RemoveAll();//删除该节点的全部内容(剩空节点) xe.ParentNode.RemoveChild(xe); //删除该节点 } } xd.Save(XMLPath); } #endregion