Xml文档的应用
Xml,个人感觉就是一个比较特殊的文本档,刚上手的时候感觉很别扭,不过能感觉的出来,当用熟了将会很方便。
下面是Xml应用的一些代码:
1 XmlDocument xdoc = new XmlDocument(); 2 protected void Page_Load(object sender, EventArgs e) 3 { 4 #region 5 //XmlReaderSettings settings = new XmlReaderSettings(); 6 //settings.IgnoreComments = true;//忽略Xml中的注释 7 //settings.IgnoreWhitespace = true;//忽略没必要的空白 8 9 //using (XmlReader reader = XmlReader.Create(Server.MapPath("books.xml"), settings))//第一个参数需要的是实路径 10 //{ 11 // int booknum = 0; 12 // while (reader.Read()) 13 // { 14 // if (reader.NodeType == XmlNodeType.Element) 15 // { 16 // if (reader.LocalName == "book") 17 // { 18 // booknum++; 19 // } 20 // } 21 // } 22 // Response.Write(booknum); 23 //} 24 25 //XmlWriterSettings settingsw=new XmlWriterSettings();//write的设置 26 //settingsw.Encoding=System.Text.Encoding.UTF8;//编码类型 27 //settingsw.Indent=true; 28 //using (XmlWriter writere = XmlWriter.Create(Server.MapPath("newbook.xml"), settingsw)) 29 //{ 30 // writere.WriteStartDocument();//开始写版本以及链接 31 32 // writere.WriteStartElement("books");//根节点 33 34 // writere.WriteStartElement("book");//book节点开始 35 36 // writere.WriteStartAttribute("id");//给book添加属性 属性名为id 37 // writere.WriteValue("1");//写入属性值 38 // writere.WriteEndAttribute();//属性编辑结束 39 40 // writere.WriteStartElement("author");//author节点开始 41 // writere.WriteString("乔布斯");//写入author节点内容 42 // writere.WriteEndElement();//结束author节点 43 44 // writere.WriteEndElement();//结束book节点 45 46 // writere.WriteStartElement("book");//book节点开始 47 // writere.WriteStartElement("author");//author节点开始 48 // writere.WriteString("布鲁斯");//写入author节点内容 49 // writere.WriteEndElement();//结束author节点 50 // writere.WriteEndElement();//结束book节点 51 52 // writere.WriteEndElement();//结束books节点 53 // writere.WriteEndDocument();//结束 54 //} 55 #endregion 56 xdoc.Load(Server.MapPath("books.xml")); 57 if (!IsPostBack) 58 { 59 XmlNodeList xlist = xdoc.GetElementsByTagName("name");//将标记为name的内容提取出来 60 foreach (XmlNode item in xlist)//给前台的一个下拉菜单添加项 61 { 62 DropDownList1.Items.Add(item.InnerText); 63 } 64 65 } 66 #region 67 68 69 //XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='"+DropDownList1.Text+"']"); 70 //if (nod.LocalName == "author") 71 // TextBox1.Text = nod.InnerText; 72 //if (nod.LocalName == "publisher") 73 // TextBox2.Text = nod.InnerText; 74 //if (nod.LocalName == "date") 75 // TextBox3.Text = nod.InnerText; 76 //if (nod.LocalName == "isbn") 77 // TextBox4.Text = nod.InnerText; 78 //if (nod.LocalName == "price") 79 // TextBox5.Text = nod.InnerText; 80 #endregion 81 } 82 83 protected void Button1_Click(object sender, EventArgs e)//显示 84 { 85 #region 86 //XmlDocument xdoc = new XmlDocument(); 87 //xdoc.Load(Server.MapPath("books.xml")); 88 //XmlNodeList xlist = xdoc.GetElementsByTagName("name"); 89 //foreach (XmlNode item in xlist) 90 //{ 91 // DropDownList1.Items.Add(item.InnerText); 92 //} 93 #endregion 94 XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='" + DropDownList1.Text + "']");//获取Xml文档中下拉菜单选中的那一组 95 foreach (XmlNode item in nod)//用一个循环把内容放到对应的TextBox里面 96 { 97 TextBox1.Text = nod.ChildNodes.Item(0).InnerText; 98 TextBox2.Text = nod.ChildNodes.Item(1).InnerText; 99 TextBox3.Text = nod.ChildNodes.Item(2).InnerText; 100 TextBox4.Text = nod.ChildNodes.Item(4).InnerText; 101 TextBox5.Text = nod.ChildNodes.Item(5).InnerText; 102 #region 103 //if (nod.ChildNodes.Item(1) == "author") 104 // TextBox1.Text = item.InnerText; 105 //if (nod.LocalName == "publisher") 106 // TextBox2.Text = item.InnerText; 107 //if (nod.LocalName == "date") 108 // TextBox3.Text = item.InnerText; 109 //if (nod.LocalName == "isbn") 110 // TextBox4.Text = item.InnerText; 111 //if (nod.LocalName == "price") 112 // TextBox5.Text = item.InnerText; 113 #endregion 114 } 115 } 116 117 protected void Button2_Click(object sender, EventArgs e)//移除 118 { 119 XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='" + DropDownList1.Text + "']");//获取Xml文档中下拉菜单选中的那一组 120 xdoc.DocumentElement.RemoveChild(nod);//移除Xml文档中的项 121 DropDownList1.Items.Remove(DropDownList1.SelectedItem);//移除下拉菜单中的项 122 xdoc.Save(Server.MapPath("books.xml"));//将修改完的Xml存到Xml文档 123 } 124 125 protected void Button3_Click(object sender, EventArgs e)//修改 126 { 127 XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='" + DropDownList1.Text + "'");//获取Xml文档中下拉菜单选中的那一组 128 nod.SelectSingleNode("author").InnerText = TextBox1.Text;//将对应的TextBox中的内容放到Xml文档的对应标记里面 129 nod.SelectSingleNode("publisher").InnerText = TextBox2.Text; 130 nod.SelectSingleNode("date").InnerText = TextBox3.Text; 131 nod.SelectSingleNode("isbn").InnerText = TextBox4.Text; 132 nod.SelectSingleNode("price").InnerText = TextBox5.Text; 133 xdoc.Save(Server.MapPath("books.xml"));//保存Xml文档 134 //Page.RegisterClientScriptBlock("key1", "<script>alert('ok!');</script>"); 135 this.ClientScript.RegisterClientScriptBlock(this.GetType(),"key2","<script>alert('ok!');</script>");//插入脚本,一个小提示 136 #region 137 //DropDownList1.Items.Clear(); 138 //XmlNodeList xlist = xdoc.GetElementsByTagName("name"); 139 //foreach (XmlNode item in xlist) 140 //{ 141 // DropDownList1.Items.Add(item.InnerText); 142 //} 143 #endregion 144 } 145 146 protected void Button4_Click(object sender, EventArgs e)//添加 147 { 148 XmlElement bo = xdoc.CreateElement("book");//创建新的标记book,并将其放到bo里面 149 XmlElement au = xdoc.CreateElement("author");//创建新的标记au,并将其放到au里面 150 au.AppendChild(xdoc.CreateTextNode(TextBox1.Text));//给标记au增添内容 151 XmlElement pu = xdoc.CreateElement("publisher"); 152 pu.AppendChild(xdoc.CreateTextNode(TextBox2.Text)); 153 XmlElement na = xdoc.CreateElement("name"); 154 na.AppendChild(xdoc.CreateTextNode(TextBox6.Text)); 155 XmlElement da = xdoc.CreateElement("date"); 156 da.AppendChild(xdoc.CreateTextNode(TextBox3.Text)); 157 XmlElement si = xdoc.CreateElement("isbn"); 158 si.AppendChild(xdoc.CreateTextNode(TextBox4.Text)); 159 XmlElement pr = xdoc.CreateElement("price"); 160 pr.AppendChild(xdoc.CreateTextNode(TextBox5.Text)); 161 bo.AppendChild(au);//将对象节点对象au放到节点对象bo里面 162 bo.AppendChild(pu); 163 bo.AppendChild(na); 164 bo.AppendChild(da); 165 bo.AppendChild(si); 166 bo.AppendChild(pr); 167 xdoc.DocumentElement.AppendChild(bo);//将包含au、pu等节点的bo节点放到xdoc里面 168 this.DropDownList1.Items.Add(this.TextBox6.Text);//给下拉菜单增添项 169 xdoc.Save(Server.MapPath("books.xml"));//保存 170 ClientScript.RegisterClientScriptBlock(this.GetType(),"key3","<script type='text/javascript'>alert('ok!');</script>"); 171 }
上面主要是用了XmlDocument这个东西,通过XmlDocument的实例化对象对Xml文件进行操作。增添、删除、修改、查看。
浙公网安备 33010602011771号