int intType
= 1;
string strXML = " ";
strXML = " <?xml version=\ "1.0\ " encoding=\ "gb2312\ "?> "
+ " <bookstore> "
+ " <book genre=\ "fantasy\ " ISBN=\ "2-3631-4\ "> "
+ " <title> Oberon 's Legacy </title> "
+ " <author> Corets, Eva </author> "
+ " <price> 5.95 </price> "
+ " </book> "
+ " </bookstore> ";
XmlDocument xmlDocTmp=new XmlDocument();
xmlDocTmp.LoadXml(strXML);
xmlDocTmp.Save( "bookstore.xml ");
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load( "bookstore.xml ");
switch(intType)
{
case 1:
//1、往 <bookstore> 节点中插入一个 <book> 节点:
XmlNode root=xmlDoc.SelectSingleNode( "bookstore "); //查找 <bookstore>
XmlElement xe1=xmlDoc.CreateElement( "book "); //创建一个 <book> 节点
xe1.SetAttribute( "genre ", "李赞红 "); //设置该节点genre属性
xe1.SetAttribute( "ISBN ", "2-3631-4 "); //设置该节点ISBN属性
XmlElement xesub1=xmlDoc.CreateElement( "title ");
xesub1.InnerText= "CS从入门到精通 "; //设置文本节点
xe1.AppendChild(xesub1); //添加到 <book> 节点中
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); //添加到 <bookstore> 节点中
xmlDoc.Save( "bookstore.xml ");
// 结果为:
// <?xml version= "1.0 " encoding= "gb2312 "?>
// <bookstore>
// <book genre= "fantasy " ISBN= "2-3631-4 ">
// <title> Oberon 's Legacy </title>
// <author> Corets, Eva </author>
// <price> 5.95 </price>
// </book>
// <book genre= "李赞红 " ISBN= "2-3631-4 ">
// <title> CS从入门到精通 </title>
// <author> 候捷 </author>
// <price> 58.3 </price>
// </book>
// </bookstore>
break;
case 2:
//2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点 <author> 的文本修改为“亚胜”。
XmlNodeList nodeList=xmlDoc.SelectSingleNode( "bookstore ").ChildNodes; //获取bookstore节点的所有子节点
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= "亚胜 "; //则修改
break; //找到退出来就可以了
}
}
break;
}
}
xmlDoc.Save( "bookstore.xml "); //保存。
// 最后结果为:
// <?xml version= "1.0 " encoding= "gb2312 "?>
// <bookstore>
// <book genre= "fantasy " ISBN= "2-3631-4 ">
// <title> Oberon 's Legacy </title>
// <author> Corets, Eva </author>
// <price> 5.95 </price>
// </book>
// <book genre= "update李赞红 " ISBN= "2-3631-4 ">
// <title> CS从入门到精通 </title>
// <author> 亚胜 </author>
// <price> 58.3 </price>
// </book>
// </bookstore>
break;
case 3:
//3、删除 <book genre= "fantasy " ISBN= "2-3631-4 "> 节点的genre属性,删除 <book genre= "update李赞红 " ISBN= "2-3631-4 "> 节点。
XmlNodeList xnl=xmlDoc.SelectSingleNode( "bookstore ").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
if(xe.GetAttribute( "genre ")== "fantasy ")
{
xe.RemoveAttribute( "genre "); //删除genre属性
}
else if(xe.GetAttribute( "genre ")== "update李赞红 ")
{
xe.RemoveAll(); //删除该节点的全部内容
}
}
xmlDoc.Save( "bookstore.xml ");
// 最后结果为:
// <?xml version= "1.0 " encoding= "gb2312 "?>
// <bookstore>
// <book ISBN= "2-3631-4 ">
// <title> Oberon 's Legacy </title>
// <author> Corets, Eva </author>
// <price> 5.95 </price>
// </book>
// <book>
// </book>
// </bookstore>
break;
case 4:
//4、显示所有数据。
XmlNode xns=xmlDoc.SelectSingleNode( "bookstore ");
XmlNodeList xnls=xns.ChildNodes;
foreach(XmlNode xnf in xnls)
{
XmlElement xe=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute( "genre ")); //显示属性值
Console.WriteLine(xe.GetAttribute( "ISBN "));
XmlNodeList xnf1=xe.ChildNodes;
foreach(XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText); //显示子节点点文本
}
}
break;
}
string strXML = " ";
strXML = " <?xml version=\ "1.0\ " encoding=\ "gb2312\ "?> "
+ " <bookstore> "
+ " <book genre=\ "fantasy\ " ISBN=\ "2-3631-4\ "> "
+ " <title> Oberon 's Legacy </title> "
+ " <author> Corets, Eva </author> "
+ " <price> 5.95 </price> "
+ " </book> "
+ " </bookstore> ";
XmlDocument xmlDocTmp=new XmlDocument();
xmlDocTmp.LoadXml(strXML);
xmlDocTmp.Save( "bookstore.xml ");
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load( "bookstore.xml ");
switch(intType)
{
case 1:
//1、往 <bookstore> 节点中插入一个 <book> 节点:
XmlNode root=xmlDoc.SelectSingleNode( "bookstore "); //查找 <bookstore>
XmlElement xe1=xmlDoc.CreateElement( "book "); //创建一个 <book> 节点
xe1.SetAttribute( "genre ", "李赞红 "); //设置该节点genre属性
xe1.SetAttribute( "ISBN ", "2-3631-4 "); //设置该节点ISBN属性
XmlElement xesub1=xmlDoc.CreateElement( "title ");
xesub1.InnerText= "CS从入门到精通 "; //设置文本节点
xe1.AppendChild(xesub1); //添加到 <book> 节点中
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); //添加到 <bookstore> 节点中
xmlDoc.Save( "bookstore.xml ");
// 结果为:
// <?xml version= "1.0 " encoding= "gb2312 "?>
// <bookstore>
// <book genre= "fantasy " ISBN= "2-3631-4 ">
// <title> Oberon 's Legacy </title>
// <author> Corets, Eva </author>
// <price> 5.95 </price>
// </book>
// <book genre= "李赞红 " ISBN= "2-3631-4 ">
// <title> CS从入门到精通 </title>
// <author> 候捷 </author>
// <price> 58.3 </price>
// </book>
// </bookstore>
break;
case 2:
//2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点 <author> 的文本修改为“亚胜”。
XmlNodeList nodeList=xmlDoc.SelectSingleNode( "bookstore ").ChildNodes; //获取bookstore节点的所有子节点
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= "亚胜 "; //则修改
break; //找到退出来就可以了
}
}
break;
}
}
xmlDoc.Save( "bookstore.xml "); //保存。
// 最后结果为:
// <?xml version= "1.0 " encoding= "gb2312 "?>
// <bookstore>
// <book genre= "fantasy " ISBN= "2-3631-4 ">
// <title> Oberon 's Legacy </title>
// <author> Corets, Eva </author>
// <price> 5.95 </price>
// </book>
// <book genre= "update李赞红 " ISBN= "2-3631-4 ">
// <title> CS从入门到精通 </title>
// <author> 亚胜 </author>
// <price> 58.3 </price>
// </book>
// </bookstore>
break;
case 3:
//3、删除 <book genre= "fantasy " ISBN= "2-3631-4 "> 节点的genre属性,删除 <book genre= "update李赞红 " ISBN= "2-3631-4 "> 节点。
XmlNodeList xnl=xmlDoc.SelectSingleNode( "bookstore ").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;
if(xe.GetAttribute( "genre ")== "fantasy ")
{
xe.RemoveAttribute( "genre "); //删除genre属性
}
else if(xe.GetAttribute( "genre ")== "update李赞红 ")
{
xe.RemoveAll(); //删除该节点的全部内容
}
}
xmlDoc.Save( "bookstore.xml ");
// 最后结果为:
// <?xml version= "1.0 " encoding= "gb2312 "?>
// <bookstore>
// <book ISBN= "2-3631-4 ">
// <title> Oberon 's Legacy </title>
// <author> Corets, Eva </author>
// <price> 5.95 </price>
// </book>
// <book>
// </book>
// </bookstore>
break;
case 4:
//4、显示所有数据。
XmlNode xns=xmlDoc.SelectSingleNode( "bookstore ");
XmlNodeList xnls=xns.ChildNodes;
foreach(XmlNode xnf in xnls)
{
XmlElement xe=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute( "genre ")); //显示属性值
Console.WriteLine(xe.GetAttribute( "ISBN "));
XmlNodeList xnf1=xe.ChildNodes;
foreach(XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText); //显示子节点点文本
}
}
break;
}