<?xml version="1.0" encoding="utf-8"?>
<birthday>
<NO1 id="1">
<date type="a">1</date>
<name>2</name>
</NO1>
<NO2 id="2">
<date type="b">3</date>
<name>4</name>
</NO2>
</birthday>
( 增) 添加一个N03节点,节点有type属性,N03节点里面还包衣个子节点name
protected void Page_Load(object sender, EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"F:\XMLFile1.xml");
XmlNode root = xmlDoc.SelectSingleNode("birthday");//查找<birthday>
XmlElement xe1 = xmlDoc.CreateElement("NO3");//创建一个<NO3>节点
xe1.SetAttribute("type", "a");//设置该节点type属性
XmlElement xesub1 = xmlDoc.CreateElement("name");
xesub1.InnerText = "C#从入门到精通";//设置文本节点
xe1.AppendChild(xesub1);//添加到<NO3>节点中
root.AppendChild(xe1);//添加到<birthday>节点中
xmlDoc.Save(@"F:\XMLFile1.xml");
}
( 删)删除NO3里面的属性和子级
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"F:\XMLFile1.xml");
XmlNodeList xnl = xmlDoc.SelectSingleNode("birthday").ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("type") == "a")
{
xe.RemoveAll();//删除该节点的全部内容
//xe.RemoveAttribute("type");//删除type属性
}
}
xmlDoc.Save(@"F:\XMLFile1.xml");//保存。
( 改)把brithday的子节点属性ID=1,改成ID=4
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"F:\XMLFile1.xml");
XmlNodeList nodeList = xmlDoc.SelectSingleNode("birthday").ChildNodes;//获取birthday节点的所有子节点
foreach (XmlNode xn in nodeList)//遍历所有子节点
{
XmlElement xe = (XmlElement)xn;//将子节点类型转换为XmlElement类型
if (xe.GetAttribute("id") == "1")//如果type属性值为“1”
{
xe.SetAttribute("id", "4");//则修改该属性为“4”
}
}
xmlDoc.Save(@"F:\XMLFile1.xml");//保存。
( 查)查询节点最外层,含有Id属性的值,和显示子节点的文本
protected void Page_Load(object sender, EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"F:\XMLFile1.xml");
XmlNode xn = xmlDoc.SelectSingleNode("birthday");
XmlNodeList xnl = xn.ChildNodes;
foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;
TextBox1.Text = TextBox1.Text+xe.GetAttribute("id");//显示属性值
XmlNodeList xnf1 = xe.ChildNodes;
foreach (XmlNode xn2 in xnf1)
{
TextBox2.Text= TextBox2.Text+xn2.InnerText;//显示子节点的文本
}
}