要想在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(); } }
}
转:http://blog.sina.com.cn/s/blog_699337e60100kuix.html
|
请发表评论