c#修改获取xml中内容

来源:互联网 发布:淘宝客退货还有佣金吗 编辑:程序博客网 时间:2024/06/01 03:59

xml来源:可以是本地xml文件,也可是远程xml文件

C#程序中:如何修改xml文件中的节点(数据)(2010-08-05 09:38:42)转载▼

标签: xml 修改节点 c 修改元素更新xml文件    分类: 程序开发

    要想在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 inxnf1)

                   {

                      Console.WriteLine(xn2.InnerText);//显示子节点点文本

                   }

                   Console.WriteLine();

               }

       }

}


0 0
原创粉丝点击