应用Xml.Linq读xml文件
c#提供了System.Xml.Linq操作xml文件,非常方便,本文主要介绍如何应用System.Xml.Linq读取xml文件。
xml文本
<?xml version="1.0" encoding="UTF-8"?>
<TestScript>
<default>
<id>5DC48A0B-11DC-4B40-A41E-F28AE4260538</id>
<name>SetNetworkAdapter</name>
<title>设置IP地址</title>
<desc></desc>
</default>
<channels>
<channel id="1" name="ap_agent">
<open>127.0.0.1:4754</open>
</channel>
</channels>
<actions>
<action id="1" waitResponse="false" breakOnFail="false">
<io>ap_agent</io>
<predelay>0</predelay>
<command>SetNetworkAdapter</command>
<repeat>0</repeat>
<postdelay>0</postdelay>
<params>
<param id="1" order="1" name="ip" title="ip地址" value="192.168.1.112" unit="" type="input" enable="true" limitUp="" limitDown="" hint=""/>
<param id="2" order="2" name="mask" title="子网掩码" value="255.255.255.0" unit="" type="input" enable="true" limitUp="" limitDown="" hint=""/>
<param id="3" order="3" name="gateway" title="网关" value="192.168.1.1" unit="" type="input" enable="true" limitUp="" limitDown="" hint=""/>
</params>
</action>
</actions>
</TestScript>
关键代码
public XmlAction LoadXml(string xmlFile)
{
XmlAction ret = new XmlAction();
XElement xe = XElement.Load(xmlFile);
XElement eleAction = xe.Elements("actions").Elements("action").First();
ret.Id = eleAction.Attribute("id").Value;
ret.WaitResponse = eleAction.Attribute("waitResponse").Value == "true";
ret.BreakOnFail = eleAction.Attribute("breakOnFail").Value == "true";
ret.Io = eleAction.Element("io").Value;
ret.Predelay = Convert.ToInt32(eleAction.Element("predelay").Value);
ret.Postdelay = Convert.ToInt32(eleAction.Element("postdelay").Value);
ret.Command = eleAction.Element("command").Value;
ret.Repeat = Convert.ToInt32(eleAction.Element("repeat").Value);
ret.Params = new List<Param>();
foreach (XElement para in eleAction.Elements("params").Elements("param"))
{
Param p = new Param();
ret.Params.Add(p);
p.Id = para.Attribute("id").Value;
p.Enable = para.Attribute("enable").Value == "true";
p.Hint = para.Attribute("hint").Value;
p.LimitDown = para.Attribute("limitDown").Value;
p.LimitUp = para.Attribute("limitUp").Value;
p.Name = para.Attribute("name").Value;
p.Order = para.Attribute("order").Value;
p.Title = para.Attribute("title").Value;
p.Type = para.Attribute("type").Value;
p.Unit = para.Attribute("unit").Value;
p.Value = para.Attribute("value").Value;
}
return ret;
}
应用Xml.Linq读xml文件的更多相关文章
- C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)【转载】
已知有一个XML文件(bookstore.xml)如下: Corets, Eva 5.95 1.插入节点 往节点中插入一个节点: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- LinqToXML~读XML文件
linq的出现,带给我们的是简结,快速,可读性,它由linq to sql,linq to object,linq to XML组成,我的博客之前有对linq to sql的讲解,而今天,我将讲一个l ...
- LINQ to XML 编程基础
1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: 隐藏行号 复制代码 ?创建 XML public static void CreateDocumen ...
- C# ~ 从 XML 到 Linq 到 Linq to XML
.XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...
- C#学习之Linq to Xml
前言 我相信很多从事.NET开发的,在.NET 3.5之前操作XML会比较麻烦,但是在此之后出现了Linq to Xml,而今天的主人公就是Linq to Xml,废话不多说,直接进入主题. 题外:最 ...
- C#中的Linq to Xml详解
这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml.查询并修改xml.监听xml事件.处理xml流等内容,需要的朋友可以参考下 一.生成Xml 为了能 ...
- Linq世界走一走(LINQ TO XML)
前言:Linq to xml是一种使用XML的新方法.从本质上来说,它采用了多种当前使用的XML处理技术,如DOM和XPath,并直接在.NET Framework内将它们组合为一个单一的编程接口.L ...
- LINQ to XML LINQ学习第一篇
LINQ to XML LINQ学习第一篇 1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: public static void CreateDoc ...
- C# LINQ学习笔记五:LINQ to XML
本笔记摘抄自:https://www.cnblogs.com/yaozhenfa/p/CSharp_Linq_For_Xml.html,记录一下学习过程以备后续查用. 一.生成xml 1.1创建简单的 ...
随机推荐
- 关闭Tomcat进程 一条语句(必看)
写在开始 MAC系统下进行JAVA研发,经常遇到的一个问题就是杀死异常Tomcat 通常都是用两条指令,先查询出Tomcat占用的进程,再kill掉该进程, 其实有一种联合语句的方式可以一条语句直接关 ...
- [ML] the notes
"Machine Learning is not who has the best algorithm that wins. It is who has the most data.&quo ...
- 自测之Lesson7:设备文件操作
题目:请编写一个输入密码(不回显)的程序,要求通过设置终端来完成. 完成代码: #include <stdio.h> #include <unistd.h> #include ...
- java报错:Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE
Exception in thread "main" java.lang.NoSuchFieldError: INSTANCE at org.apache.http.conn.ss ...
- alpha-4
前言 失心疯病源4 团队代码管理github 站立会议 队名:PMS 530雨勤(组长) 今天完成了那些任务 19:00~21:50 利用背景相减法完成背景构建与更新模块,查找关于blob更多的论文资 ...
- Debian实验机 常用命令
1.开启中文输入法 fcitx 2. 开启无线连接 wicd 3. 远程连接 ssh root@XXX.XXX.XXX.XXX 4. 启动Ulipad ~/ulipad-master# python ...
- Ubuntu下erlang连接SQL SERVER 2008
erlang连接SQL Server使用ODBC方法,但在网络上还是缺少资料,自己折腾了2天才成功.现在特记录下来,以供大家借鉴. 基本思路是 erlang odbcserver + unixodbc ...
- s3c2440调试nandflash裸机程序遇到的问题
图挂了可以去 https://github.com/tanghammer/mini2440_peripherals/blob/master/nand/debug_nand.md 按照前面sdram的代 ...
- 数论的欧拉定理证明 & 欧拉函数公式(转载)
欧拉函数 :欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数 n ,小于 n 且和 n 互质的正整数(包括 1)的个数,记作 φ(n) . 完全余数集合:定义小于 n 且和 n 互质的数 ...
- 不清楚System.Diagnostics.Process.Start(e.LinkText); 的含义
using System; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms ...