(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文件介绍如何使 ...
 
随机推荐
- jsoup的elements类
			
jsoup的Elements类 一.简介 该类是位于select包下,直接继承自Object,所有实现的接口有Cloneable, Iterable<Element>, Collectio ...
 - bsgrid
			
网址:http://bsgrid.oschina.mopaasapp.com/ var total = gridObj.options.totalRows; jquery必须放在bsgrid的前面 根 ...
 - vim 被墙
			
我只能说,呵呵.还好这货可以进. http://vim.wendal.net/
 - 20145220&20145209&20145309信息安全系统设计基础实验报告(1)
			
实验贡献:韩旭飞 刘一阳 李昊实验报告贡献:李昊 刘一阳 韩旭飞 PART1 一.实验原理 交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码.同一个体系结构可以运行不同的操作系统:同样 ...
 - spark新能优化之序列化
			
概叙: 在任何分布式系统中,序列化都是扮演着一个重要的角色的.如果使用的序列化技术,在执行序列化操作的时候很慢,或者是序列化后的数据还是很大,那么会让分布式应用程序的性能下降很多.所以,进行Spark ...
 - URAL 1077 Travelling Tours(统计无向图中环的数目)
			
Travelling Tours Time limit: 1.0 secondMemory limit: 64 MB There are N cities numbered from 1 to N ( ...
 - windows 10安装framework 3.5失败的解决方案
			
装了两次win 10,全都因为没法安装framework 3.5,用不了老版本的开发环境,又换回了win7. 网上有两种解决方案: a,通过iso安装. 可是拜托,我的系统都是用ghost版本安装的, ...
 - HTML DOM参考手册
			
HTML DOM是HTML Document Object Model(文档对象模型)的缩写,HTML DOM则是专门适用与HTML/XHTML的文档对象模型.熟悉软件开发的人员可以将HTML DOM ...
 - 翻译:Universal Image Loader
			
本文转载于:http://blog.csdn.net/tianxiangshan/article/details/9399183 All manipulations are held by the I ...
 - away3d学习
			
http://www.cnblogs.com/flash3d/p/3403109.html M3U8文件简介:http://blog.sina.com.cn/s/blog_6cf7acdf0102v0 ...