(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 映射到对应的类上,从而在程序中使用。
(C# ) 解析XML。的更多相关文章
- Android 解析XML文件和生成XML文件
解析XML文件 public static void initXML(Context context) { //can't create in /data/media/0 because permis ...
- Android之解析XML
1.XML:可扩展标记语言. 可扩展标记语言是一种很像超文本标记语言的标记语言. 它的设计宗旨是传输数据,而不是显示数据. 它的标记没有被预定义.需要自行定义标签. 它被设计为具有自我描述性. 是W3 ...
- Android之Pull解析XML
一.Pull解析方法介绍 除了可以使用SAX和DOM解析XML文件,也可以使用Android内置的Pull解析器解析XML文件.Pull解析器的运行方式与SAX解析器相似.它也是事件触发的.Pull解 ...
- Android之DOM解析XML
一.DOM解析方法介绍 DOM是基于树形结构的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树,检索所需数据.分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息 ...
- Android之SAX解析XML
一.SAX解析方法介绍 SAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备. SAX解析器是一种基于事件的解析器,事件驱动 ...
- Android 使用pull,sax解析xml
pull解析xml文件 1.获得XmlpullParser类的引用 这里有两种方法 //解析器工厂 XmlPullParserFactory factory=XmlPullParserFactory. ...
- 用 ElementTree 在 Python 中解析 XML
用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...
- java解析xml的三种方法
java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...
- WP8解析XML格式文件
DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式,如果要返回XML格式的话,需要在加上format=xml. 这里举一个简单的解析XML格式的例子(更 ...
- JAVA使用SAX解析XML文件
在我的另一篇文章(http://www.cnblogs.com/anivia/p/5849712.html)中,通过一个例子介绍了使用DOM来解析XML文件,那么本篇文章通过相同的XML文件介绍如何使 ...
随机推荐
- Integer to Roman
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
- 利用freemarker生成xml
package com.mooc.freemarkerXML; import java.io.IOException; import java.io.StringWriter; import java ...
- request获取json
$.ajax({ type:'post', url:'${ctx}/recordServiceController/queryDetail.do', //contentType:'applicatio ...
- html---文本框样式;
一.一个单行文本框的例子 <form name="form1" action="mailto:3400982550@qq.com" method=&quo ...
- UI组件(思维导图)
- IE 下加载jQuery
转:http://www.iitshare.com/ie8-not-use-native-json.html 解决在IE8中无法使用原生JSON的问题 起因 在项目中要将页面上的js对象传给后台, ...
- Questions?
http://www.datastax.com/wp-content/themes/datastax-2014-08/files/NoSQL_Benchmarks_EndPoint.pdf http: ...
- ORACLE 11g 用Duplicate恢复Data Guard 备库详细过程
1.先查找备库控制文件路径 先在备库上找出控制文件的路径,通过和主库一样,不过为了以防万一,还是check为好. SQL> select name from v$controlfile; NA ...
- linux服务之smtp
实现这个协议的软件太多,有sendmail,postfix等.不像snmp,基本上是net-snmp一统天下, yum install nc nc用来取代telnet 这里我们希望让大家知道网络协议中 ...
- html之内联标签img
img创建的是被链接图像的占位空间,它不会真正地在网页插入图像. 两个必须属性: src:图像的超链接 alt:图像的替代文本 可选属性: height:高度 width:宽度 ismap:将图像定义 ...