用XmlTextReader处理Xml字符串

XmlTextReader是类似于SAX的基于流的Xml读取器,与SAX不同的是,SAX采取的是push model推模式,XmlTextReader采用的是pull model,所以XmlTextReader使程序开发者更能选择性处理数据。下面一个简单的例子:

ContractedBlock.gif ExpandedBlockStart.gif Code
 1string xmlStr = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><Books><Book SN=\"1000\" Name=\".Net\" /><Book SN=\"2000\" Name=\"Java\"/></Books>";
 2
 3            StringBuilder sb = new StringBuilder();
 4
 5            using (XmlReader xmlReader = XmlTextReader.Create(new StringReader(xmlStr)))
 6ExpandedBlockStart.gifContractedBlock.gif            {
 7                while (xmlReader.Read())
 8ExpandedSubBlockStart.gifContractedSubBlock.gif                {
 9                    switch (xmlReader.NodeType)
10ExpandedSubBlockStart.gifContractedSubBlock.gif                    {
11                        case XmlNodeType.Element:
12                            if (xmlReader.Name == "Book")
13ExpandedSubBlockStart.gifContractedSubBlock.gif                            {
14                                if (xmlReader.HasAttributes)
15ExpandedSubBlockStart.gifContractedSubBlock.gif                                {
16                                    if (xmlReader.MoveToAttribute("SN"))
17ExpandedSubBlockStart.gifContractedSubBlock.gif                                    {
18                                        sb.Append(xmlReader.ReadContentAsInt());
19                                    }

20                                    if (xmlReader.MoveToAttribute("Name"))
21ExpandedSubBlockStart.gifContractedSubBlock.gif                                    {
22                                        sb.AppendFormat(" {0}", xmlReader.ReadContentAsString());
23                                    }

24
25                                    sb.Append("\r\n");
26                                }

27                            }

28                            break;
29                    }

30                }

31            }

32
33            Console.WriteLine(sb.ToString());
34
35            Console.ReadLine();

 

转载于:https://www.cnblogs.com/TerryLiang/archive/2009/03/18/1415182.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值