• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#中的Linq to Xml详解

C#中的Linq to Xml详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#list用linq排序,c#linq,c#中linq,c#datatable linq,c#linq where等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

前言

我相信很多从事.NET开发的,在.NET 3.5之前操作XML会比较麻烦,但是在此之后出现了Linq to Xml,而今天的主人公就是Linq to Xml,废话不多说,直接进入主题。

一、生成Xml

为了能够在结构有一定的组织,笔者建议大家新建一个控制台项目,并且新建一个CreateXml类(以下部分都属于该类中)。

并在其中写入以下属性:
public static String Path
        {
            get
            {
                String path = String.Format("{0}\\test.xml", Environment.CurrentDirectory);
                return path;
            }
        }
</div>

这句代码很好理解,就是为了下面我们示例的时候可以将xml保存到当前程序的运行路径下。

(以下的示例中不会包含Main方法中的写法,因为Main中仅仅只要调用该静态方法即可。)

1.创建简单的Xml

首先我们先练练手,创建一个简单的Xml并保存到一个文件中。

代码如下:
/// <summary>
/// 创建简单的xml并保存
/// </summary>
public static void CreateElement()
{
XDocument xdoc = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("root",
new XElement("item", "1"),
new XElement("item", "2")
));
xdoc.Save(Path);
}
</div>

很多学习过XML的人可以从结构就能够猜测出最终的xml的组织,而这也是linq to xml的优点之一。这句代码首先创建一个xml文档,并设置该xml的版本为1.0,

采用utf-8编码,后面的yes表示该xml是独立的。下面就开始创建每个节点的,首先是Root节点,然后在Root节点中添加两个Item节点。

最终生成的Xml如下所示:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
    <item>1</item>
    <item>2</item>
</root>
</div>

2.创建注释

当xml有很多项时,我们就需要利用注释加以区别,通过linq to xml我们一样可以在其中添加注释。

比如下面这段代码:
/// <summary>
        /// 创建注释
        /// </summary>
        public static void CreateComment()
        {
            XDocument doc = new XDocument(
                new XDeclaration("1.0", "utf-8", "yes"),
                new XComment("提示"),
                new XElement("item", "asd")
                );
            doc.Save(Path);
        }
</div>

这里我们直接在版本信息的后面添加了一条注释。

最终的结果如下所示:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!--提示-->
<item>asd</item>
</div>

3.根据对象创建xml

很多时候我们都会将数组之类的类型转换成xml以便保存进永久性存储介质中,所以下面我们也简单的举了一个例子,将数组转换成xml。

代码如下所示:
/// <summary>
        /// 根据对象创建xml并保存
        /// </summary>
        public static void CreateElementByObjects()
        {
            var s = Enumerable.Range(1, 10);
            XElement xele = new XElement(
                "Root",
                from item in s
                select new XElement("item", item.ToString())
                );
            xele.Save(Path);
        }
</div>

一开始的代码 var s = Enumerable.Radge(1,10)是从1开始递增,生成含有10项的数组,以便后面我们进行添加,有了这个数组之后,

我们通过简单的linq语句将数组转换成xml,添加到Root中。

保存之后的结果如下:
<?xml version="1.0" encoding="utf-8"?>
<Root>
  <item>1</item>
  <item>2</item>
  <item>3</item>
  <item>4</item>
  <item>5</item>
  <item>6</item>
  <item>7</item>
  <item>8</item>
  <item>9</item>
  <item>10</item>
</Root>
</div>

4.创建属性

有时我们不想创建新的子项去保存数据,而是使用属性的方式去保存。理所应当,linq to xml一样也支持这个功能,下面我们可以通过简单的语句去实现它。

代码如下所示:
/// <summary>
        /// 创建属性
        /// </summary>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C# List 排序各种用法与比较
  • C#中list用法实例
  • C#使用linq计算执行元素在列表中出现次数的方法
  • C#使用linq语句查询数组中以特定字符开头元素的方法
  • C#使用linq对数组进行筛选排序的方法
  • C#使用linq查询大数据集的方法
  • C#对list列表进行随机排序的方法
  • C#中的Linq to Xml详解
  • C#中Linq查询基本操作使用实例
  • 通过LinQ查询字符出现次数的实例方法

相关文章

  • 2017-05-28C#实现rabbitmq 延迟队列功能实例代码
  • 2017-05-28C#利用GDI绘制常见图形和文字
  • 2017-05-28结合.net框架在C#派生类中触发基类事件及实现接口事件
  • 2017-05-28C#对Access进行增删改查的完整示例
  • 2017-05-28C#统计C、C++及C#程序代码行数的方法
  • 2017-05-28Url相对路径的问题总结
  • 2017-05-28C#实现统计字数功能的方法
  • 2017-05-28C#中静态的深入理解
  • 2017-05-28c# 组合模式
  • 2017-05-28Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • c# 引用类型与值类型的区别详解
    • C#版ftp方法实现类的代码
    • C#:(变量)字段和局部变量的作用域冲突
    • C#自动设置IE代理服务器(翻墙软件)代码实现
    • C# 获取当前月份天数的三种方法总结
    • C#递归实现将一整数逆序后放入一数组中
    • C#实现将日志写入文本文件的方法
    • C#重载运算符详解
    • c# 控件截图的简单实例
    • C#判断指定分区是否是ntfs格式的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有