老鼠划猫须

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文件进行操作。增添、删除、修改、查看。

posted on 2012-12-21 10:04  昔日流年  阅读(160)  评论(0)    收藏  举报

导航