您的位置:首页 > 编程语言 > C#

C#程序中:如何修改xml文件中的节点(数据)(

2012-08-03 15:02 363 查看
要想在web等程序中实现动态的数据内容给新(如网页中的Flash),不会更新xml文件中的节点(数据)是远远不够的,今天在这里说一个简单的xml文件的更新,方法比较基础,很适合初学者看的,保证一看就懂!

------------------程序环境下xml文件中的节点、元素

<items>

<item 类别="娱乐" 品质="优">

<title>毛著</title>

<author>毛泽东</author>

<price>10.00</price>

</item>

<item 类别="文学" 品质="中">

<title>流浪记</title>

<author>三毛</author>

<price>15.00</price>

</item>

</items>

----------------------

下面是程序,这几天写的程序只需要复制到VS中就可以看到效果

……

using System.Xml;

using System.IO;

namespace WriteXml

{

class Program

{

static void Main(string[] args)

{

updatexml();//修改节点(数据)

}

private static void updatexml()

{

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load("titles.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("titles.xml");//再一次强调 ,一定要记得保存的该XML文件

Console.WriteLine();

Console.WriteLine();

Console.WriteLine();

Console.WriteLine();

//readtext();//这个是为了更好的比对修改前和修改后的结果

}

//读取Xml文件中的节点元素

private static void readtext()

{

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.Load("titles.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();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐