zoukankan      html  css  js  c++  java
  • (C# ) 解析XML。

    解析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 映射到对应的类上,从而在程序中使用。

  • 相关阅读:
    RadAsm使用
    如何从外网访问内网
    装SQL server 2008问题解决
    820
    大三学生经验之谈
    ROM与RAM知识
    java mybatis学习一
    java Sprint boot 学习之一
    java读取配置到Hash表里
    数组乱序算法
  • 原文地址:https://www.cnblogs.com/fdyang/p/3740249.html
Copyright © 2011-2022 走看看