c# 读取 写入 xml 文档

写入xml 方法:

   public void WritetokenToXml(string _token)
        {
            string file = Server.MapPath("~/pages/token.xml");
            if (File.Exists(file))
            {
                XmlDocument xml = new XmlDocument();
                xml.Load(file);
                XmlNodeList node = xml.SelectNodes("tokens/token");
                int count = Convert.ToInt32(node.Item(node.Count - 1).ChildNodes.Item(0).InnerText);
                count++;
                XmlElement ab = xml.CreateElement("token");
                StringBuilder s = new StringBuilder();
                s.Append("<count>" + count + "</count>");
                s.Append("<data>" + DateTime.Now + "</data>");
                s.Append("<content>" + _token + "</content>");
                ab.InnerXml = s.ToString();
                xml.DocumentElement.AppendChild(ab);
                xml.Save(file);
            }
            else
            {
                Response.Write("文件不存在");
            }

        }

 

 

 

 


   public void WritetokenToXml(string _token)
        {
            string file = Server.MapPath("~/pages/token.xml");
            if (File.Exists(file))
            {
                XmlDocument xml = new XmlDocument();
                xml.Load(file);
                XmlNodeList node = xml.SelectNodes("tokens/token");
                int count = Convert.ToInt32(node.Item(node.Count - 1).ChildNodes.Item(0).InnerText);
                count++;
                XmlElement ab = xml.CreateElement("token");
                StringBuilder s = new StringBuilder();
                s.Append("<count>" + count + "</count>");
                s.Append("<data>" + DateTime.Now + "</data>");
                s.Append("<content>" + _token + "</content>");
                ab.InnerXml = s.ToString();
                xml.DocumentElement.AppendChild(ab);
                xml.Save(file);
            }
            else
            {
                Response.Write("文件不存在");
            }

        }

 

 

读取方式  :

  XmlDataDocument doc = new XmlDataDocument();
            doc.Load("/pages/token.xml");  这种方式会报一个错 找不到路径。。。。。
            XmlNodeReader read = new XmlNodeReader(doc);

 

这种方式读取是最好的:用Server.MapPath 对象

 

  string file = Server.MapPath("~/pages/token.xml");
            if (File.Exists(file))
            {
                XmlDocument xml = new XmlDocument();
                xml.Load(file);

           } 

 

读取第一个  token 节点  如下:

  XmlNode node = doc.SelectSingleNode("//token");
            if (node != null)
            {
                string str=node.SelectSingleNode("content").InnerText;
                Response.Write(node.SelectSingleNode("content").InnerText);
            }

 

SelectSingleNode() 方法的用法 ; 读取一个节点  

读取所有的token 节点  如下:


  XmlNodeList list = doc.SelectNodes("//token");
            Response.Write(list.Count);


            foreach(XmlNode xn  in list)
            {
                Response.Write(xn.SelectSingleNode("count").InnerText+"----"+xn.SelectSingleNode("data").InnerText+"-----"+xn.SelectSingleNode("content").InnerText+"-----");
                Response.Write(xn.InnerText);
            }


 


SelectNodes()  方法的用法    读取的是节点集合

 

 

 

读取xml  出现的路径问题,,,,,

     当我写相对路径时 总报错,,找不到路径文件“

如: 未能找到路径“C:\Program Files\Common Files\Microsoft Shared\DevServer\pages\token.xml”的一部分。 

写上绝对路径才运行成功。

那到底该怎么写 相对路径呢??

 

  string file = Server.MapPath("~/pages/token.xml");  这样写才正确。  网站的虚拟路径

 

 

./当前目录


/网站主目录


../上层目录


~/网站虚拟目录

 

以上4种需要注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值