XML文件的读取用XmlDocument和XmlReader的比较

XmlReader是基于数据流的,占用极少的内存,是只读方式的,所以速度极快.只能采用遍历的模式查找数据节点。

 XmlTextReader textReader = new XmlTextReader("C://myXmFile.xml");
            textReader.Read();
            // 节点非空则执行循环体
            while ( textReader.Read() )
            {
            // 读取第一个元素
            textReader.MoveToElement();
            Console.WriteLine("XmlTextReader Properties Test");
            Console.WriteLine("===================");
            // 读取该元素的属性并显示在控制台中
            Console.WriteLine("Name:"+ textReader.Name);
            Console.WriteLine("Base URI:" +textReader.BaseURI);
            Console.WriteLine("Local Name:"+ textReader.LocalName);
            Console.WriteLine("Attribute Count:"+ textReader.AttributeCount.ToString());
            Console.WriteLine("Depth:"+ textReader.Depth.ToString());
            Console.WriteLine("Line Number:" +textReader.LineNumber.ToString());
            Console.WriteLine("Node Type:"+ textReader.NodeType.ToString());
            Console.WriteLine("Attribute Count:" + textReader.Value.ToString());
            }

XmlDocument是基于树形结构的模型,数据保存于内存中,可以查找内存中数据的任何方面。占用内存大,处理方便,可读可写,几乎想当于一次把Xml读入内存.

xmldocument doc=new xmldocument();
   doc.load("config.xml");
   xmlnode xnuser=doc.selectsinglenode("userdata");
   string flag=xnuser.attributes["createuser"].innertext;

读取节点中的值
   xmldocument doc=new xmldocument();
   doc.load("config.xml");
   xmlnode xnserver = doc.selectsinglenode("userdata/dataconnection/server");

修改节点的属性
   xmldocument doc=new xmldocument();


   doc.load("config.xml");
   xmlnode xnuser=doc.selectsinglenode("userdata");
   xnuser.attributes["createuser"].innertext="false";
   doc.save("config.xml");

追加节点
   xmldocument doc = new xmldocument();
   xmltextreader reader = new xmltextreader("config.xml");
   doc.load("config.xml");
   xmlelement root = doc.documentelement; // 获取根节点
   xmlelement tagmessage = doc.createelement("net");
   xmlelement tagtext = doc.createelement("name");
   tagtext.innertext  = netname;
   tagmessage.appendchild(tagtext);   // 追加到 xml 文本的最后面
   root.appendchild(tagmessage);
   reader.close();     // 关闭 xmltextreader
   doc.save("config.xml");     // 保存 xml 文件

所以:
如果数据量极大,用XmlReader合适,
如果处理复杂频繁且文件不大,XmlDocument合适。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值