xml流的一些操作总结

在实际开发中遇到一些读取远程XML文件,以下是总结的方法

1,以前用的笨方法

    用HTTP_GET 方法读取远程XML数据,保存在本地,然后用XmlDocument加载,这种方法比较笨,让大家见笑了

2,也不是很好, 先读取HTTP_GET 方法读取远程XML数据 用StringReader 加载文件,最后用XmlTextReader 读取数据

                StringBuilder str = new StringBuilder(256);
                 str.Append(Comment.doGetRequest("http://localhost:6350/alidz.do?cmd=querypricebypnr&pnr=X4H4B&bigpnr=0&air=ca&fmt=xml"));

                StringReader strReader = new
                StringReader(str.ToString());

                XmlTextReader xml = new XmlTextReader(strReader);
                while (xml.Read())
                {
                    if (xml.NodeType == XmlNodeType.Text)
                    {
                          Response.Write(xml.Value);
                    }
                }

3,用linq 读取 比较简单

a,用XDocument 读取

XDocument fromWeb = XDocument.Load("http://localhost:6350/alidz.do?cmd=querypricebypnr&pnr=X4H4B&bigpnr=0&air=ca&fmt=xml");
               // XmlReader xmlr = XmlReader.Create(strReader);
                //XElement xml1 = XElement.Load(xml);
               // XElement xml1 = XElement.Parse(str.ToString());
                var custs = from c in fromWeb.Elements("priceinfo")
                            select c;
                //   Execute the query
                foreach (var customer in custs)
                {
                    Response.Write(customer.Value);
                }

b,用XElement 读取
                XElement xml1 = XElement.Load("http://localhost:6350/alidz.do?cmd=querypricebypnr&pnr=X4H4B&bigpnr=0&air=ca&fmt=xml");
               var custstest = from c in xml1.Elements()
                            select c;                //   Execute the query
                foreach (var customer in custstest)
                {
                    Response.Write(customer.Value);
                }

备注 可以通过XDocument或XElement的静态方法Load载入xml文档,Load可以接受URI字符串,TextReader,XmlReader作为输入源。还可以使用静态方法Parse把字符串转变为待查询的xml文档。XDocument和XElement的区别在于查询时,XElment可以跳过根几点直接查询。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值