• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

(C#)解析XML。

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

解析XML有很多方法,之前用专门写的XMLProcess 或XMLHelper 解析类。其实有个较简单的解析就是用Linq查询。

例如有如下XML

<?xml version="1.0" encoding="utf-8" ?>
<outArgs>
  <arg-xml>
    <scanners>
      <scanner type="USBIBMHID">
        <scannerID>2</scannerID>
        <modelnumber>DS6708-SR20007ZZR</modelnumber>
        <serialnumber>1216300503088</serialnumber>
        <GUID>4D6059D05BEA5745061D7D0B811E7CC</GUID>
      </scanner>
      <scanner type="USBIBMHID">
        <scannerID>3</scannerID>
        <modelnumber>DS6708-SR20007ZZR</modelnumber>
        <serialnumber>2216300503022</serialnumber>
        <GUID>556059D05BEA5745061D7D0B811E755</GUID>
      </scanner>
      <scanner type="SNAPI">
        <scannerID>4</scannerID>
        <modelnumber>DS457-SR001R</modelnumber>
        <serialnumber>3316300503033</serialnumber>
        <GUID>666059D05BEA5745061D7D0B811E766</GUID>
      </scanner>
    </scanners>
    <status>1</status>
  </arg-xml>
</outArgs>

1. 查询所有“USBIBMHID”的Scanner的数量。

int number = XElement.Parse(outXml).XPathSelectElements("//scanner[@type = 'USBIBMHID']").Count();

2. 查询 type 为 “SNAPI"的Scanner的ID。 (即查找结点scanner的子结点scannerID的Inner Text)

            XDocument xDoc = XDocument.Load("XMLFile1.xml");
            var scanners = xDoc.Descendants("scanner").Where(node => node.Attribute("type").Value == "USBIBMHID").FirstOrDefault();

            List<string> idValues = new List<string>();
            if (scanners != null)
            {
                idValues.Add(scanners.Descendants("scannerID").Single().Value);
            }

 

实际应用中,使用XML序列化来解析XML并运用的程序中是一个比较方便的方法。

使用XML序列化可以直接把Data 映射到对应的类上,从而在程序中使用。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
VS中用C#开发应用程序的调试入门、技巧和实例(转载)发布时间:2022-07-10
下一篇:
C#中特性(Attribute)的使用简介发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap