XmlDocument xdoc = new XmlDocument();
protected void Page_Load(object sender, EventArgs e)
{
#region
//XmlReaderSettings settings = new XmlReaderSettings();
//settings.IgnoreComments = true;//忽略Xml中的注释
//settings.IgnoreWhitespace = true;//忽略没必要的空白
//using (XmlReader reader = XmlReader.Create(Server.MapPath("books.xml"), settings))//第一个参数需要的是实路径
//{
// int booknum = 0;
// while (reader.Read())
// {
// if (reader.NodeType == XmlNodeType.Element)
// {
// if (reader.LocalName == "book")
// {
// booknum++;
// }
// }
// }
// Response.Write(booknum);
//}
//XmlWriterSettings settingsw=new XmlWriterSettings();//write的设置
//settingsw.Encoding=System.Text.Encoding.UTF8;//编码类型
//settingsw.Indent=true;
//using (XmlWriter writere = XmlWriter.Create(Server.MapPath("newbook.xml"), settingsw))
//{
// writere.WriteStartDocument();//开始写版本以及链接
// writere.WriteStartElement("books");//根节点
// writere.WriteStartElement("book");//book节点开始
// writere.WriteStartAttribute("id");//给book添加属性 属性名为id
// writere.WriteValue("1");//写入属性值
// writere.WriteEndAttribute();//属性编辑结束
// writere.WriteStartElement("author");//author节点开始
// writere.WriteString("乔布斯");//写入author节点内容
// writere.WriteEndElement();//结束author节点
// writere.WriteEndElement();//结束book节点
// writere.WriteStartElement("book");//book节点开始
// writere.WriteStartElement("author");//author节点开始
// writere.WriteString("布鲁斯");//写入author节点内容
// writere.WriteEndElement();//结束author节点
// writere.WriteEndElement();//结束book节点
// writere.WriteEndElement();//结束books节点
// writere.WriteEndDocument();//结束
//}
#endregion
xdoc.Load(Server.MapPath("books.xml"));
if (!IsPostBack)
{
XmlNodeList xlist = xdoc.GetElementsByTagName("name");//将标记为name的内容提取出来
foreach (XmlNode item in xlist)//给前台的一个下拉菜单添加项
{
DropDownList1.Items.Add(item.InnerText);
}
}
#region
//XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='"+DropDownList1.Text+"']");
//if (nod.LocalName == "author")
// TextBox1.Text = nod.InnerText;
//if (nod.LocalName == "publisher")
// TextBox2.Text = nod.InnerText;
//if (nod.LocalName == "date")
// TextBox3.Text = nod.InnerText;
//if (nod.LocalName == "isbn")
// TextBox4.Text = nod.InnerText;
//if (nod.LocalName == "price")
// TextBox5.Text = nod.InnerText;
#endregion
}
protected void Button1_Click(object sender, EventArgs e)//显示
{
#region
//XmlDocument xdoc = new XmlDocument();
//xdoc.Load(Server.MapPath("books.xml"));
//XmlNodeList xlist = xdoc.GetElementsByTagName("name");
//foreach (XmlNode item in xlist)
//{
// DropDownList1.Items.Add(item.InnerText);
//}
#endregion
XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='" + DropDownList1.Text + "']");//获取Xml文档中下拉菜单选中的那一组
foreach (XmlNode item in nod)//用一个循环把内容放到对应的TextBox里面
{
TextBox1.Text = nod.ChildNodes.Item(0).InnerText;
TextBox2.Text = nod.ChildNodes.Item(1).InnerText;
TextBox3.Text = nod.ChildNodes.Item(2).InnerText;
TextBox4.Text = nod.ChildNodes.Item(4).InnerText;
TextBox5.Text = nod.ChildNodes.Item(5).InnerText;
#region
//if (nod.ChildNodes.Item(1) == "author")
// TextBox1.Text = item.InnerText;
//if (nod.LocalName == "publisher")
// TextBox2.Text = item.InnerText;
//if (nod.LocalName == "date")
// TextBox3.Text = item.InnerText;
//if (nod.LocalName == "isbn")
// TextBox4.Text = item.InnerText;
//if (nod.LocalName == "price")
// TextBox5.Text = item.InnerText;
#endregion
}
}
protected void Button2_Click(object sender, EventArgs e)//移除
{
XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='" + DropDownList1.Text + "']");//获取Xml文档中下拉菜单选中的那一组
xdoc.DocumentElement.RemoveChild(nod);//移除Xml文档中的项
DropDownList1.Items.Remove(DropDownList1.SelectedItem);//移除下拉菜单中的项
xdoc.Save(Server.MapPath("books.xml"));//将修改完的Xml存到Xml文档
}
protected void Button3_Click(object sender, EventArgs e)//修改
{
XmlNode nod = xdoc.DocumentElement.SelectSingleNode("book[name='" + DropDownList1.Text + "'");//获取Xml文档中下拉菜单选中的那一组
nod.SelectSingleNode("author").InnerText = TextBox1.Text;//将对应的TextBox中的内容放到Xml文档的对应标记里面
nod.SelectSingleNode("publisher").InnerText = TextBox2.Text;
nod.SelectSingleNode("date").InnerText = TextBox3.Text;
nod.SelectSingleNode("isbn").InnerText = TextBox4.Text;
nod.SelectSingleNode("price").InnerText = TextBox5.Text;
xdoc.Save(Server.MapPath("books.xml"));//保存Xml文档
//Page.RegisterClientScriptBlock("key1", "<script>alert('ok!');</script>");
this.ClientScript.RegisterClientScriptBlock(this.GetType(),"key2","<script>alert('ok!');</script>");//插入脚本,一个小提示
#region
//DropDownList1.Items.Clear();
//XmlNodeList xlist = xdoc.GetElementsByTagName("name");
//foreach (XmlNode item in xlist)
//{
// DropDownList1.Items.Add(item.InnerText);
//}
#endregion
}
protected void Button4_Click(object sender, EventArgs e)//添加
{
XmlElement bo = xdoc.CreateElement("book");//创建新的标记book,并将其放到bo里面
XmlElement au = xdoc.CreateElement("author");//创建新的标记au,并将其放到au里面
au.AppendChild(xdoc.CreateTextNode(TextBox1.Text));//给标记au增添内容
XmlElement pu = xdoc.CreateElement("publisher");
pu.AppendChild(xdoc.CreateTextNode(TextBox2.Text));
XmlElement na = xdoc.CreateElement("name");
na.AppendChild(xdoc.CreateTextNode(TextBox6.Text));
XmlElement da = xdoc.CreateElement("date");
da.AppendChild(xdoc.CreateTextNode(TextBox3.Text));
XmlElement si = xdoc.CreateElement("isbn");
si.AppendChild(xdoc.CreateTextNode(TextBox4.Text));
XmlElement pr = xdoc.CreateElement("price");
pr.AppendChild(xdoc.CreateTextNode(TextBox5.Text));
bo.AppendChild(au);//将对象节点对象au放到节点对象bo里面
bo.AppendChild(pu);
bo.AppendChild(na);
bo.AppendChild(da);
bo.AppendChild(si);
bo.AppendChild(pr);
xdoc.DocumentElement.AppendChild(bo);//将包含au、pu等节点的bo节点放到xdoc里面
this.DropDownList1.Items.Add(this.TextBox6.Text);//给下拉菜单增添项
xdoc.Save(Server.MapPath("books.xml"));//保存
ClientScript.RegisterClientScriptBlock(this.GetType(),"key3","<script type='text/javascript'>alert('ok!');</script>");
}
C#中Xml文档的运用
最新推荐文章于 2025-07-11 16:11:27 发布