updatexml();//修改节点(数据)
//修改节点(数据)
private static void updatexml()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("ABC.xml");//加载xml文件,文件
XmlNode xns = xmlDoc.SelectSingleNode("items");//查找要修改的节点
XmlNodeList xnl = xns.ChildNodes;//取出所有的子节点
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;//将节点转换一下类型
if (xe.GetAttribute("类别") == "文学")//判断该子节点是否是要查找的节点
{
xe.SetAttribute("类别", "娱乐");//设置新值
}
else//为了有更明显的效果,所以不管是否是符合条件的子节点,我都给一个操作
{
xe.SetAttribute("类别", "文学");
}
XmlNodeList xnl2 = xe.ChildNodes;//取出该子节点下面的所有元素
foreach (XmlNode xn2 in xnl2)
{
XmlElement xe2 = (XmlElement)xn2;//转换类型
if (xe2.Name == "price")//判断是否是要查找的元素
{
if (xe2.InnerText == "10.00")//判断该元素的值并设置该元素的值
xe2.InnerText = "15.00";
else
xe2.InnerText = "10.00";
}
//break;//这里为了明显效果 我注释了break,用的时候不用,这个大家都明白的哈
}
//break;
}
xmlDoc.Save("B.xml");//再一次强调 ,一定要记得保存的该XML文件
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
//readtext();//这个是为了更好的比对修改前和修改后的结果
}
//读取Xml文件中的节点元素
private static void readtext()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("B.xml");
XmlNode xn = xmlDoc.SelectSingleNode("items");
XmlNodeList xnl = xn.ChildNodes;
foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;
Console.Write("类别 " + xe.GetAttribute("类别") + " 品质 ");//显示属性值
Console.WriteLine(xe.GetAttribute("品质"));
XmlNodeList xnf1 = xe.ChildNodes;
foreach (XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText);//显示子节点点文本
}
Console.WriteLine();
}
}
using System.Xml;//命名空间
XmlDocument创建XML文档
XmlElement 元素
InnerText文本
Load加载
DocumentElement获得跟节点
ChildNodes获得子节点