c# 通过字符窜创建Xml对象,并浏览

本文介绍如何使用StringReader、XPathDocument等类将XML格式的字符串解析为可操作的数据结构。通过实例演示了创建流、XPathDocument及导航器的过程,并展示了如何遍历节点获取所需数据。

需要使用StringReader、XPathDocument 、XPathNavigator 、XPathNodeIterator 这四个类

首先要将字符串string类型转化为流StringReader类型

然后通过StringReader创建XPathDocument

有了XPathDocument 以后,创建导航XPathNavigator

      XPathDocument.CreateNavigator() 方法可以创建导航

通过导航XPathDocument创建节点集 XPathNodeIterator用于读取数据

      XPathDocument.Select() 方法可以创建节点集XPathNodeIterator

               

                string s = "<point><x>5</x><y>6</y></point>";//一个Xml格式的字符串

                StringReader txtReader = new StringReader(s);//将字符串转化为流

                XPathDocument xPath = new XPathDocument(txtReader);//通过流创建只读的Xml类

                XPathNavigator nav = xPath.CreateNavigator();//创建导航

                XPathNodeIterator iter = nav.Select("/point");//创建节点

                while(iter.MoveNext())//遍历当前节点的所有子节点
                {
                    XPathNodeIterator newIter = iter.Current.SelectChildren(XPathNodeType.Element);//创建子节点的节点
                    while(newIter.MoveNext())//遍历子节点的所有节点
                    {
                        XPathNodeIterator leafIter = newIter.Current.SelectChildren(XPathNodeType.Element);//创建当前节点的子节点
                        if (leafIter.Count == 0)//如果当前节点无子节点
                        {
                            lstBoxMessage.Items.Add(newIter.Current.Name + ", " + newIter.Current.Value);
                        }
                        else//当前节点有子节点
                        {
                            if (leafIter.MoveNext())//读取当前子节点的子节点
                            {
                                lstBoxMessage.Items.Add(newIter.Current.Name + ", " + leafIter.Current.OuterXml);
                            }
                        }
                    }
                }

            }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值