XML基础学习02<linq to xml>

简介: XML基础学习02<linq to xml>

Linq to XML的理解


1:这是一种比较好的操作Xml的工具。

àXDocument 文档


àXElement 元素


àXAttribute 属性


àXText 文本


2:这里还是和我们之前创建xml的形式是一样的,只是这里更为的简单点。


 创建xmldocument节点,创建根元素,创建person元素,将person元素添加到根元素下面,在创建id属性这里是键值对形式,创建name,sex元素。并因为他们是对象,可以使用name.Value="阿辉";,通过add方法统一的保存到person元素。

    public static void Main(string[] args)
    {
        var doc = new XDocument();
        //创建根元素
        var root = new XElement("root");
        doc.Add(root);
        var person = new XElement("person");
        XAttribute xId=new XAttribute("id","003");
        XElement name=new XElement("name");
        var sex = new XElement("dex");
        name.Value = "阿辉";
        sex.Value = "23";
        person.Add(xId,name,sex);
        root.Add(person);
        doc.Save("ahuiLinq.xml");
    }



3:再来一个简单的XML文档的形式。


直接就好像在写LINQ一样,直接就写完了。

    static void Main(string[] args)
    {
        new XDocument(
            new XElement("root",
                new XElement("person",
                    new XAttribute("id","002"),
                    new XElement("name","ahji"),
                    new XElement("age","23"),
                    new XElement("sex","女")
                       ))).Save("ahui02_XML.xml");
    }

679140-20160114214402335-399683190.png

其实这里面的原理和之前我们写的那种形式的是一样的。我们只需要按照之前的顺序写下去就行了。


4:我们可以来好好的感觉下XML的强大之处。


_——》使用xml将数据库中的数据进行临时的保存

    var xdoc=new XDocument(new XElement("PersonCollection"));
     Random random=new Random();
     //我们可以从文本文件和DB中取到数据,保存到xml文件中。
     for (int i = 0; i <100; i++)
     {
         xdoc.Root.Add(
             new XElement("Person",
                 new XAttribute("id",i+1),
                 new XElement("name","阿辉"+i),
                 new XElement("age",random.Next(41)),
                 new XElement("sex","男女"[random.Next(2)]))
             );
     }
     xdoc.Save("Db中读取的数据.xml");



这里有一个小的知识点,我们发现在最后面那个有个男女的字符,但是后面直接跟了个[]这个是利用随机数是0,1来决定前面字符串中的位置,显示的是男或女。感觉很高端的样子。


new XElement("sex","男女"[random.Next(2)])) 



5:直接将字符串转换为xml文档,那么就是在字符串中直接写代码就行了。


          XDocument.Parse(@"
<root>
    <person id=""004"">
        <name>阿辉</name>
        <age>23</age>
        <sex>男</sex>
   </person>
</root>
                                   ").Save("stringToXml.xml");

679140-20160114214414225-916120449.png


这样的做法就比较之前的更加的简单了。


6:当xml文档的内容特别多,且我们需要某个文件的时候就需要使用我们查找的功能,

这里有具体的步骤。


*:加载xml文件


*:查找


*:具体的查找公式,这里的e是节点对象,也是属性,标签,这里主要进行判断。


//var query=xdoc.DescendantNodes().where(e=>{返回bool值得判断条件,其实这里就是写逻辑判断})+xdoc.DescendantNodes()返回全部的节点集合


    string path = "Db中读取的数据.xml";
    XDocument xdoc = XDocument.Load(path);
    var query = xdoc.
        DescendantNodes().
        Where(e =>
        {
            //返回Bool值得判断条件,e是节点对象,有属性,标签,
            XElement els = e as XElement;
            if (els == null) return false;
            XElement age = els.Element("age");
            XElement sex = els.Element("女");
            if(age !=null && sex !=null)
            {
                int numAge = Convert.ToInt32(age.Value);
                if (numAge >= 20 && numAge <= 25)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        });
    XElement root=new XElement("root");
    //这里遍历得到的数据就是XElement数据。
    foreach (XElement item in query)
    {
        root.Add(item);
    }
    new XDocument(root).Save("Search.xml");


目录
相关文章
|
6月前
|
XML SQL 数据处理
学习 XQuery:XML数据查询的关键
XQuery是用于查询XML数据的语言,类似SQL对数据库的操作。它基于XPath构建,用于从XML文档中提取和排序元素。FLWOR表达式(For, Let, Where, Order by, Return)是其核心,用于处理和过滤数据。例如,示例代码展示了如何选取&quot;books.xml&quot;中价格大于30的书籍并按标题排序。XQuery还可用于Web服务、生成报告、XML到XHTML转换及搜索文档等场景。了解XPath能帮助更好地掌握XQuery,两者有相似的数据模型和函数。
103 0
|
6月前
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
88 0
|
XML 存储 JSON
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
Python学习 -- 常用数据交换格式(CSV、XML、JSON)
105 0
|
6月前
|
XML Java Maven
第1次Spring源码学习之@Bean、@Configuration、xml、分析
第1次Spring源码学习之@Bean、@Configuration、xml、分析
67 0
|
2月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
47 1
|
23天前
|
XML 前端开发 Java
XML基本概念入门学习指南
XML(eXtensible Markup Language)是一种可扩展的标记语言,和HTML语言语法类似,同属于标记语言。
|
5月前
|
XML Java 数据格式
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
47 1
|
1月前
|
XML Java 应用服务中间件
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
这篇文章是关于Apache Tomcat服务器的目录结构、配置文件(特别是server.xml)的详细介绍和学习指南。
58 0
tomcat学习一:tomcat 目录及配置文件学习 server.xml 等
|
6月前
|
XML 存储 JavaScript
深入学习 XML 解析器及 DOM 操作技术
所有主要的浏览器都内置了一个XML解析器,用于访问和操作XML XML 解析器 在访问XML文档之前,必须将其加载到XML DOM对象中 所有现代浏览器都有一个内置的XML解析器,可以将文本转换为XML DOM对象
124 0
|
XML 存储 数据库
XML学习基础知识归纳(一)
XML是可扩展的标记语言,xml文档的后缀名为 .xml
72 1