C# 中怎么读取XML文件?

是这样的,C#中涉及到的一些变量名字比如a1001,a1002,a1003,把他在XML中定义好了。比如a1001叫图书ID,a1002叫图书名,a1003叫图书作者。读... 是这样的,C#中涉及到的一些变量名字比如a1001,a1002,a1003,把他在XML中定义好了。比如a1001叫图书ID,a1002叫图书名,a1003叫图书作者。读取这个对应的XML后就能把这些变量替换成对应的变量名 展开
 我来答
yanjianming05
推荐于2017-12-15 · 超过33用户采纳过TA的回答
知道答主
回答量:119
采纳率:100%
帮助的人:41.4万
展开全部
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
namespace WriteXml
{
    class Program
    {
        static void Main(string[] args)
        {
            //createXml();//创建文件和添加基本数据,便于之后操作实验
            //addItem();//追加数据
            readtext();//读取数据
            //updatexml();//更新数据
            //delnode();//删除数据
        }
        private static void createXml()
        {
            XmlTextWriter writer = new XmlTextWriter("titles.xml", null);
            //使用自动缩进便于阅读
            writer.Formatting = Formatting.Indented;
            //写入根元素
            writer.WriteStartElement("items");
            writer.WriteStartElement("item");
            //写入属性及属性的名字
            writer.WriteAttributeString("类别", "文学");
            writer.WriteAttributeString("品质", "优");
            //加入子元素
            writer.WriteElementString("title", "毛著");
            writer.WriteElementString("author", "毛泽东");
            writer.WriteElementString("price", "10.0");
            //关闭根元素,并书写结束标签
            writer.WriteEndElement();
            writer.WriteEndElement();
            //将XML写入文件并且关闭XmlTextWriter
            writer.Close();
        }
        private static void addItem()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("titles.xml");
            XmlNode root = xmlDoc.SelectSingleNode("items");
            XmlElement xe1 = xmlDoc.createElement_x("item");
            xe1.SetAttribute("类别", "张三");
            xe1.SetAttribute("品质", "老师");
            XmlElement xmlsub1 = xmlDoc.createElement_x("title");
            xmlsub1.InnerText = "wahahha";
            xe1.AppendChild(xmlsub1);
            XmlElement xmlsub2 = xmlDoc.createElement_x("author");
            xmlsub2.InnerText = "三毛";
            xe1.AppendChild(xmlsub2);
            XmlElement xmlsub3 = xmlDoc.createElement_x("Price");
            xmlsub3.InnerText = "15.00";
            xe1.AppendChild(xmlsub3);
            root.AppendChild(xe1);
            xmlDoc.Save("titles.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();
               }
        }
        private static void updatexml()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("titles.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;
            }
            xmlDoc.Save("titles.xml");
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            readtext();
        }
        private static void delnode()
        {
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("titles.xml");
            XmlNodeList xnl = xmlDoc.SelectSingleNode("items").ChildNodes;
            foreach (XmlNode xn in xnl)
            {
                XmlElement xe = (XmlElement)xn;
                if (xe.GetAttribute("类别") == "文学")
                {
                    xe.RemoveAttribute("类别");//删除genre属性
                }
                else if (xe.GetAttribute("类别") == "娱乐")
                {
                    xe.RemoveAll();//删除该节点的全部内容
                }
            }
            xmlDoc.Save("titles.xml");
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            readtext();
        }
    }
}
匿名用户
2014-01-13
展开全部
建议使用Linq to Xml ,比原始的Xml操作方便又简单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雷神king
2014-01-13
知道答主
回答量:50
采纳率:0%
帮助的人:10万
展开全部
读取xml有专门的xml类,需要引用xml命名空间,即可使用
追问
什么类?我应该搜什么?
追答
XmlDocument这个,XmlDocument doc=new XmlDocument();,写出来,会提示你引入什么空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胖胖很邪恶
2014-01-13 · TA获得超过122个赞
知道答主
回答量:142
采纳率:0%
帮助的人:65.1万
展开全部
使用XMLDocument 或者 XMLReader读取
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式