因为为了轻易人人把代码复制一下,在离开数据的情况下,就能够看到结果,所以,我把数据寄存在xml,所以读取数据不是经由过程数据库,是经由过程跟xml文件交互完成的。所以做了下面临xml增编削查页面。
结果图:
起首列出XML文件,轻易代码参照
内容.xml
<?xml version="1.0" encoding="utf-8"?> <config> <Header ID="ID" class="class" class_name="class_name" year="year" school="school" count="count"> </Header> <rows ID="01" class="一五班" class_name="实验班" year="2013" school="三峡高级中学" count="30"> </rows> <rows ID="02" class="一六班" class_name="奥数班" year="2013" school="三峡高级中学" count="45"> </rows> <rows ID="03" class="一七班" class_name="阳光班" year="2013" school="三峡高级中学" count="60"> </rows> <rows ID="04" class="一八班" class_name="美术班" year="2013" school="三峡高级中学" count="75"> </rows> </config>
一,中心代码:
1) 修正xml
/// <summary> /// 修正XML /// </summary> /// <param name="xmlName">XML文件名</param> /// <param name="ht">寄存信息哈希表</param> /// <param name="ID">主键值</param> public void saveXML(string xmlName,Hashtable ht,string ID) { string fileName=HttpContext.Current.Request.PhysicalApplicationPath+"\\Xml\\"+xmlName+".xml";//xml的物理途径 XmlDocument xmlDoc=new XmlDocument (); xmlDoc.Load(fileName); XmlNode node = xmlDoc.SelectSingleNode("config/rows[@ID=" + ID + "]"); foreach (XmlNode node1 in node.Attributes) { if (ht.ContainsKey(node1.Name)&&node1.Name!="ID") { node1.Value = ht[node1.Name].ToString(); } } xmlDoc.Save(fileName); }
ht:
Hashtable ht = new Hashtable(); ht.Add("ID", this.txt_ID.Value); ht.Add("class", this.txt_class.Value); ht.Add("class_name", this.txt_class_name.Value); ht.Add("year", this.txt_year.Value); ht.Add("school", this.txt_school.Value); ht.Add("count", this.txt_count.Value);
2)插进去xml
/// <summary> /// 插进去xml /// </summary> /// <param name="xmlName">XML文件名</param> /// <param name="ht">寄存信息哈希表</param> /// <returns></returns> public string insertXml(string xmlName, Hashtable ht) { string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\\Xml\\" + xmlName + ".xml";//xml的物理途径 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); XmlNode node = xmlDoc.SelectSingleNode("//rows[last()]");//末了一个行节点 XmlNode MaxNode = xmlDoc.SelectSingleNode("//rows/@ID[not(.<//rows/@ID)]");//猎取主键最大值 if (int.Parse(ht[MaxNode.Name].ToString()) <= int.Parse(MaxNode.Value))//假如小于主键最大值,那末返回- { return "-1"; } XmlElement xe = xmlDoc.CreateElement("rows"); xe.InnerText = ""; foreach (XmlNode node1 in node.Attributes) { if (ht.ContainsKey(node1.Name)) { xe.SetAttribute(node1.Name, ht[node1.Name].ToString()); } else { xe.SetAttribute(node1.Name,""); } } node.ParentNode.AppendChild(xe); xmlDoc.Save(fileName); return "1"; }
3) 删除xml
/// <summary> /// 删除xml节点 /// </summary> /// <param name="xmlName">XML文件名</param> /// <param name="ID">主键值</param> /// <param name="primaryKey">主键名</param> /// <returns></returns> public string deleteXml(string xmlName,string ID,string primaryKey) { string rtn = string.Empty; string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\\Xml\\" + xmlName + ".xml";//xml的物理途径 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(fileName); XmlNode node = xmlDoc.SelectSingleNode("//rows[@"+primaryKey+"='"+ID+"']");//末了一个行节点 if (node ==null) { rtn = "-1"; } else { node.ParentNode.RemoveChild(node); rtn = "1"; } xmlDoc.Save(fileName); return rtn; }
4)html显现xml在之前的内容已引见过
假如是看详细的完成代码,能够下载:
以上就是xml进修(8) xml增编削查的内容,更多相关内容请关注ki4网(www.ki4.cn)!