zoukankan      html  css  js  c++  java
  • Linq第一篇

    1.Linq to xml:

    命名空间:System.XML

    类 XElement

    用XElment类构造XML树:

    可以在代码中构造xml树

    可以从包括TextReader,文本文件或者web地址(URL)在内的各种源解析XML

    可以使用XmlReader来填充树

    XAttribute类

    XAttribute类表示XML属性

    属性是与元素关联的名称/值对

    使用LINQ to XML中的属性,与使用元素非常相似。他们的构造函数相似。用于检索他们的集合的方法相似。属性集合的LINQ查询表达式与元素集合的LINQ查询表达式看起来非常相似。

    将属性添加到元素中的顺序会保留下来。也就是说,当循环访问属性时,缩减到的属性顺序会保留下来。

    XDocument类

    XDocumnet类包含有效的XML文档所需要的信息。其中包括XML声明,处理指令和注释。

    如果需要XDocument类提供的特地给功能,只需要创建XDocument对象。在很多情况下,可以直接使用XElement。直接使用XElement是一种比较简单的编程模型。

    XDocument对象只能有一个子XElement节点。这反映了XML标准,即在XML文档中只能有一个根元素。

    (vs自动代码整理ctrl+a+k+f,a,k,f要轮流按,不要同时按下,a是为了全部选中代码,也可以选中想要整理的代码,然后k,f)

    XML名称常常是导致XML编程复杂性的原因,XML名称由XML命名空间(也成为XML命名空间URI)和本地名称组成。XML命名空间的作用与给予.NET Framework的程序中命名空间的作用类似,它能够唯一限定元素和属性的名称。这有助于避免XML问大概各个部分之间的名称冲突。声明XML命名空间后,可以选择只需在此命名空间内唯一的本地名称。

    序列化XML树

    XElement和XDocument类中的以下方法可以用于序列化XML树。可以将xml树序列化为文件,textreader或xmlreader.ToString方法序列化为字符串

    XElement.Save

    XDocument.Save

    XElement.ToString

    XDocument.ToString

    SaveOptions

    DisableFormatting:序列化时保留无关紧要的空白

    None:不对格式做处理

      1 using System;
      2 using System.Collections.Generic;
      3 using System.IO;
      4 using System.Linq;
      5 using System.Text;
      6 using System.Threading.Tasks;
      7 using System.Xml;
      8 using System.Xml.Linq;
      9 
     10 namespace LinqConsole
     11 {
     12     class Program
     13     {
     14         static void Main(string[] args)
     15         {
     16             #region demo1
     17             //XDocument contacts = new XDocument(
     18             //        new XElement("Contacts",
     19             //        new XComment("This is a comment."),
     20             //           new XProcessingInstruction("xml-stylesheet",
     21             //               "href='mystyle.css' title='Compact' type='text/css'"),
     22             //           new XElement("Contact",
     23             //               new XElement("Name",
     24             //               new XAttribute("Type", "Name"), "Patrick Hines"),
     25             //               new XElement("Phone", "206-201-0250"),
     26             //               new XElement("Address",
     27             //                   new XElement("Street", "123 Main St"),
     28             //                   new XElement("City", "Mercer Island"),
     29             //                   new XElement("State", "WA"),
     30             //                   new XElement("Postal", "52640")
     31             //               )
     32             //               ),
     33             //           new XComment("This is another conment.")
     34 
     35             //           )
     36             //       );
     37 
     38             //contacts.Declaration = new XDeclaration("1.0", "utf-8", "true");
     39             //Console.WriteLine(contacts);
     40 
     41             //contacts.Save("test.xml");
     42             //Console.ReadKey();
     43             #endregion
     44 
     45             #region demo2
     46             //XElement srcTree =
     47             //   new XElement("Root",
     48             //       new XElement("XElement",1),
     49             //       new XElement("XElement", 2),
     50             //       new XElement("XElement", 3),
     51             //       new XElement("XElement",4),
     52             //       new XElement("XElement", 5)
     53             //       );
     54 
     55             //XElement xmlTree =
     56             //  new XElement("Root",
     57             //      new XElement("Child", 1),
     58             //      new XElement("Child", 2),
     59             //      from item in srcTree.Elements()
     60             //      where (int)item>2
     61             //      select item
     62             //      );
     63 
     64             //Console.WriteLine(xmlTree);
     65             //Console.ReadKey();
     66             #endregion
     67 
     68             #region demo3
     69             //XmlReader r = XmlReader.Create("books.xml");
     70             //while (r.NodeType != XmlNodeType.Element)
     71             //{
     72             //    r.Read();
     73             //}
     74             //XElement e1 = XElement.Load(r); //也可以直接load文档
     75             //Console.WriteLine(e1);
     76             //Console.ReadKey();
     77             #endregion
     78 
     79             #region demo4
     80             //XNamespace aw = "http://www.adventure-works.com";
     81             //XNamespace fc = "www.fourthooffee.com";
     82             //XElement root = new XElement( "Root",
     83             //    new XAttribute(XNamespace.Xmlns + "aw", "http://www.adventure-works.com"),
     84             //    new XAttribute(XNamespace.Xmlns+"fc", "www.fourthooffee.com"),
     85             //    new XElement(fc + "Child", 
     86             //        new XElement(aw+"DifferentChild","other content")              
     87             //    ),
     88             //    new XElement(aw+"Child2","c2 content"),
     89             //    new XElement(fc+"Child3","c3 content")
     90             //);
     91             //Console.WriteLine(root);
     92             //Console.ReadKey();
     93             #endregion
     94 
     95             #region demo5
     96             //带xml声明的序列化
     97             //XElement root = new XElement("Root",
     98             //    new XElement("Child", "child content"));
     99             //root.Save("Root.xml",SaveOptions.DisableFormatting);
    100             //string str = File.ReadAllText("Root.xml");
    101             //Console.WriteLine(str);
    102             //Console.ReadKey();
    103 
    104             //不带xml声明的序列化
    105             StringBuilder sb = new StringBuilder();
    106             XmlWriterSettings xws = new XmlWriterSettings();
    107             xws.OmitXmlDeclaration = true;
    108             using (XmlWriter xw = XmlWriter.Create(sb, xws))
    109             {
    110                 XElement root1 = new XElement("Root",
    111                     new XElement("Child", "child content"));
    112                 root1.Save(xw);
    113             }
    114 
    115             Console.WriteLine(sb.ToString());
    116             Console.ReadKey();
    117             #endregion
    118 
    119         }
    120     }
    121 }
    View Code
  • 相关阅读:
    如何做好不擅长的测试任务
    [ Python入门教程 ] Python中日志记录模块logging使用实例
    [ Python入门教程 ] Python中日期时间datetime模块使用实例
    cmd命令行窗口和文件目录资源管理器快速切换
    [ Python入门教程 ] Python中JSON模块基本使用方法
    [ PyQt入门教程 ] PyQt5中多线程模块QThread使用方法
    [ PyQt入门教程 ] PyQt5中数据表格控件QTableWidget使用方法
    设计模式目录
    我的软考架构师之路:目录(共22篇)
    算法篇:目录
  • 原文地址:https://www.cnblogs.com/mhdtysp/p/4719785.html
Copyright © 2011-2022 走看看