using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Text;
public partial class _2008_Default2 : System.Web.UI.Page
{
XmlDocument xmldoc;
XmlNode xmlnode;
XmlElement xmlelem;
protected void Page_Load(object sender, EventArgs e)
{
}
private void makeXML()
{
xmldoc = new XmlDocument();
//加入XML的聲明段落,<?xml version="1.0" encoding="gb2312"?>
XmlDeclaration xmldecl;
xmldecl = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);
xmldoc.AppendChild(xmldecl);
//加入一個根元素
xmlelem = xmldoc.CreateElement("", "Employees", "");
xmldoc.AppendChild(xmlelem);
//加入另外一個元素
for (int i = 0; i < 2; i++)
{
XmlNode root =
xmldoc.SelectSingleNode("Employees");//查找<Employees>
XmlElement xe1 =
xmldoc.CreateElement("Node");//創建一個<Node>節點
xe1.SetAttribute("genre", "李贊紅");//設置該節點genre屬性
xe1.SetAttribute("ISBN", "2-3631-4");//設置該節點ISBN屬性
XmlElement xesub1 = xmldoc.CreateElement("title");
xesub1.InnerText = "CS從入門到精通";//設置文本節點
xe1.AppendChild(xesub1);//添加到<Node>節點中
XmlElement xesub2 = xmldoc.CreateElement("author");
xesub2.InnerText = "候捷";
xe1.AppendChild(xesub2);
XmlElement xesub3 = xmldoc.CreateElement("price");
xesub3.InnerText = "58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到<Employees>節點中
}
//保存創建好的XML文檔
xmldoc.Save(Server.MapPath("data.xml"));
}
private void makeXMl2()
{
XmlTextWriter xmlWriter;
string strFilename = Server.MapPath("data1.xml");
xmlWriter = new XmlTextWriter(strFilename,
Encoding.Default);//創建一個xml文檔
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Employees");
xmlWriter.WriteStartElement("Node");
xmlWriter.WriteAttributeString("genre", "李贊紅");
xmlWriter.WriteAttributeString("ISBN", "2-3631-4");
xmlWriter.WriteStartElement("title");
xmlWriter.WriteString("CS從入門到精通");
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("author");
xmlWriter.WriteString("候捷");
xmlWriter.WriteEndElement();
xmlWriter.WriteStartElement("price");
xmlWriter.WriteString("58.3");
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.Close();
}
protected void Button1_Click(object sender, EventArgs e)
{
makeXML();
makeXMl2();
}
private void addxmldata()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNode root =
xmlDoc.SelectSingleNode("Employees");//查找<Employees>
XmlElement xe1 =
xmlDoc.CreateElement("Node");//創建一個<Node>節點
xe1.SetAttribute("genre", "張三");//設置該節點genre屬性
xe1.SetAttribute("ISBN", "1-1111-1");//設置該節點ISBN屬性
XmlElement xesub1 = xmlDoc.CreateElement("title");
xesub1.InnerText = "C#入門幫助";//設置文本節點
xe1.AppendChild(xesub1);//添加到<Node>節點中
XmlElement xesub2 = xmlDoc.CreateElement("author");
xesub2.InnerText = "高手";
xe1.AppendChild(xesub2);
XmlElement xesub3 = xmlDoc.CreateElement("price");
xesub3.InnerText = "158.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到<Employees>節點中
xmlDoc.Save(Server.MapPath("data.xml"));
}
protected void Button2_Click(object sender, EventArgs e)
{
addxmldata();
}
protected void Button3_Click(object sender, EventArgs e)
{
deleteXML();
}
private void deleteXML()//刪除結點
{
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load( Server.MapPath("data.xml") );
XmlNode root=xmlDoc.SelectSingleNode("Employees");
XmlNodeList xnl =
xmlDoc.SelectSingleNode("Employees").ChildNodes;
for (int i = 0; i < xnl.Count; i++)
{
XmlElement xe = (XmlElement)xnl.Item(i);
if (xe.GetAttribute("genre") == "張三")
{
root.RemoveChild(xe);
if (i < xnl.Count) i = i - 1;
}
}
xmlDoc.Save(Server.MapPath("data.xml"));
}
private void updateXML()//修改結點的值(屬性和子結點)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNodeList nodeList =
xmlDoc.SelectSingleNode("Employees").ChildNodes;//獲取Employees節點的所有子節點
foreach (XmlNode xn in nodeList)//遍歷所有子節點
{
XmlElement xe = (XmlElement)xn;//將子節點類型轉換為XmlElement類型
if (xe.GetAttribute("genre") == "張三")//如果genre屬性值為“張三”
{
xe.SetAttribute("genre",
"update張三");//則修改該屬性為“update張三”
XmlNodeList nls = xe.ChildNodes;//繼續獲取xe子節點的所有子節點
foreach (XmlNode xn1 in nls)//遍歷
{
XmlElement xe2 = (XmlElement)xn1;//轉換類型
if (xe2.Name == "author")//如果找到
{
xe2.InnerText = "亞勝";//則修改
}
}
}
}
xmlDoc.Save(Server.MapPath("data.xml"));//保存。
}
protected void Button4_Click(object sender, EventArgs e)
{
updateXML();
}
protected void Button5_Click(object sender, EventArgs e)
{
updateXML2();
}
private void updateXML2()//修改結點(添加結點的屬性和添加結點的自結點
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNodeList nodeList =
xmlDoc.SelectSingleNode("Employees").ChildNodes;//獲取Employees節點的所有子節點
foreach (XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement)xn;
xe.SetAttribute("test", "111111");
XmlElement xesub = xmlDoc.CreateElement("flag");
xesub.InnerText = "1";
xe.AppendChild(xesub);
}
xmlDoc.Save(Server.MapPath("data.xml"));
}
protected void Button6_Click(object sender, EventArgs e)
{
RemoveChild();
}
private void RemoveChild()//刪除結點中的某一個屬性
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("data.xml"));
XmlNodeList xnl =
xmlDoc.SelectSingleNode("Employees").ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
xe.RemoveAttribute("genre");//刪除genre屬性
XmlNodeList nls = xe.ChildNodes;//繼續獲取xe子節點的所有子節點
foreach (XmlNode xn1 in nls)//遍歷
{
XmlElement xe2 = (XmlElement)xn1;//轉換類型
if (xe2.Name == "flag")//如果找到
{
xe.RemoveChild(xe2);//則刪除
}
}
}
xmlDoc.Save(Server.MapPath("data.xml"));
}
private void readXMl()//按照文本文件讀取xml
{
System.IO.StreamReader myFile = new
System.IO.StreamReader(Server.MapPath("data.xml"),
System.Text.Encoding.Default);
//注意System.Text.Encoding.Default
string myString = myFile.ReadToEnd();//myString是讀出的字符串
myFile.Close();
Response.Write(myString);
}
protected void Button7_Click(object sender, EventArgs e)
{
readXMl();
}
}