应用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创建简单的 ...
随机推荐
- php面试的那些“黑话”
以下是一些常见的面试暗语,求职者一定要弄清楚其中蕴含的深意,不然可能“躺着也中枪”,最后只能铩羽而归. (1)请把简历先放在这,有消息我们会通知你的 面试官说出这句话,则表明他对你已经“兴趣不大”,为 ...
- ACM 第十七天
暑期热身赛 BAPC 2014 The 2014 Benelux Algorithm Programming Contest 题目网址:https://odzkskevi.qnssl.com/3655 ...
- Token安全
token相对安全加密算法 http://blog.csdn.net/q8649912/article/details/52370565 关于文章的理解 1 sessionid 这个名词应该理解为:一 ...
- node中的__dirname
先说结论:__dirname指的是当前文件所在文件夹的绝对路径. 测试路径如下: 即 根目录/dir0.js 根目录/path1/dir1.js 根目录/paht1/path2/dir2.js 每个d ...
- Kafka Streams演示程序
本文从以下六个方面详细介绍Kafka Streams的演示程序: Step 1: 下载代码 Step 2: 启动kafka服务 Step 3: 准备输入topic并启动Kafka生产者 Step 4: ...
- redis——持久化方式RDB与AOF分析
https://blog.csdn.net/u014229282/article/details/81121214 redis两种持久化的方式 RDB持久化可以在指定的时间间隔内生成数据集的时间点快照 ...
- scala中的模式匹配
基本语法 变量 match { case 值1 => 代码 case 值2 => 代码 ... case 值N if (...) => 代码 case _ => 代码 } 常量 ...
- Java接口成员变量
定义接口 使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,当中接口体由常量定义和方法定义两部分组成.定义接口的基本格式例如以下: [修饰符] inter ...
- javaBean默认接受request发送过来的数据,根据键自动设置属性
javaBean默认接受request发送过来的数据,根据键自动设置属性
- Properties 的list方法 直接将内容放到文本中
Properties 的list方法 直接将内容放到文本中