`
gstarwd
  • 浏览: 1525066 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

LINQ to XML一些基本查询

    博客分类:
  • .NET
阅读更多

  /**/ /// /根据元素的名称进行筛选(有命名空间)
             // XNamespace aw = " http://www.adventure-works.com ";
            
// XElement po = XElement.Load("PurchaseOrderInNamespace.xml");
            
// IEnumerable<XElement> items =
            
//     from el in po.Descendants(aw + "ProductName")
            
//     select el;
            
// foreach (XElement prdName in items)
            
//     Console.WriteLine(prdName.Name + ":" + (string)prdName);


            
/**/ /// /链接轴方法
             // XElement purchaseOrders = XElement.Load("PurchaseOrders.xml");
            
// IEnumerable<XElement> names =
            
//     from el in purchaseOrders
            
//         .Elements("PurchaseOrder")
            
//         .Elements("Address")
            
//         .Elements("Name")
            
//     select el;
            
// foreach (XElement e in names)
            
//     Console.WriteLine(e);


            
/**/ /// /链接轴方法,有时,当可能存在或不存在间隔上级时,您希望在特定的元素深度,检索所有的元素
             // XElement root = XElement.Load("Irregular.xml");
            
// IEnumerable<XElement> configParameters =
            
//     root.Elements("Customer").Elements("Config").
            
//     Elements("ConfigParameter");
            
// foreach (XElement cp in configParameters)
            
//     Console.WriteLine(cp);

            
/**/ /// /检索单个子元素
             // XElement po = XElement.Load("PurchaseOrder.xml");
            
// XElement e = po.Element("DeliveryNotes");
            
// Console.WriteLine(e);

            
/**/ /// /检索索性的集合
             // XElement val = new XElement("Value",
            
//     new XAttribute("ID", "1243"),
            
//     new XAttribute("Type", "int"),
            
//     new XAttribute("ConvertableTo", "double"),
            
//     "100");

            
// IEnumerable<XAttribute> listOfAttributes =
            
//     from att in val.Attributes()
            
//     select att;
            
// foreach (XAttribute a in listOfAttributes)
            
//     Console.WriteLine(a);

            
/**/ /// /检索单个属性
             // XElement cust = new XElement("PhoneNumbers",
            
//         new XElement("Phone",
            
//             new XAttribute("type", "home"),
            
//             "555-555-5555"),
            
//         new XElement("Phone",
            
//             new XAttribute("type", "work"),
            
//             "555-555-6666")
            
//     );
            
// IEnumerable<XElement> elList =
            
//     from el in cust.Descendants("Phone")
            
//     select el;
            
// foreach (XElement el in elList)
            
//     Console.WriteLine((string)el.Attribute("type"));

            
/**/ /// /检索属性值
             // XElement root = new XElement("Root",
            
//         new XAttribute("Attr", "abcde")
            
//     );
            
// Console.WriteLine(root);
            
// string str = (string)root.Attribute("Attr");
            
// Console.WriteLine(str);


            
#endregion

            
基本查询 #region  基本查询
            
/**/ /// /查找具有特定属性的元素
             // XElement root = XElement.Load("PurchaseOrder.xml");
            
// IEnumerable<XElement> address =
            
//     from el in root.Elements("Address")
            
//     where (string)el.Attribute("Type") == "Billing"
            
//     select el;
            
// foreach (XElement el in address)
            
//     Console.WriteLine(el);

            
/**/ /// /查找具有特定子元素的元素
             // XElement root = XElement.Load("TestConfig.xml");
            
// IEnumerable<XElement> tests =
            
//     from el in root.Elements("Test")
            
//     where (string)el.Element("CommandLine") == "Examp2.EXE"
            
//     select el;
            
// foreach (XElement el in tests)
            
//     Console.WriteLine((string)el.Attribute("TestId"));


            
// 查询 XDocument 与查询 XElement
//               // Create a simple document and write it to a file
//                         File.WriteAllText("Test.xml", @"<Root>
//                             <Child1>1</Child1>
//                             <Child2>2</Child2>
//                             <Child3>3</Child3>
//                         </Root>");

            
// Console.WriteLine("Querying tree loaded with XElement.Load");
            
// Console.WriteLine("----");
            
// XElement doc = XElement.Load("Test.xml");
            
// IEnumerable<XElement> childList =
            
//     from el in doc.Elements()
            
//     select el;
            
// foreach (XElement e in childList)
            
//     Console.WriteLine(e);


            
// Console.WriteLine("Querying tree loaded with XDocument.Load");
            
// Console.WriteLine("----");
            
// XDocument doc = XDocument.Load("Test.xml");
            
// IEnumerable<XElement> childList =
            
//     from el in doc.Elements()
            
//     select el;
            
// foreach (XElement e in childList)
            
//     Console.WriteLine(e);

//              // 查找具有特定元素名称的子代
//             XElement root = XElement.Parse(@"<root>
//                                                           <para>
//                                                             <r>
//                                                               <t>Some text </t>
//                                                             </r>
//                                                             <n>
//                                                               <r>
//                                                                 <t>that is broken up into </t>
//                                                               </r>
//                                                             </n>
//                                                             <n>
//                                                               <r>
//                                                                 <t>multiple segments.</t>
//                                                               </r>
//                                                             </n>
//                                                           </para>
//                                                         </root>");

//             IEnumerable<string> textSegs =
//                 from seg in root.Descendants("t")
//                 select (string)seg;

//             string str = textSegs.Aggregate(new StringBuilder(),
//                 (sb, i) => sb.Append(i),
//                 sp => sp.ToString()
//             );

//             Console.WriteLine(str);

//              // 使用 Descendants 方法查找单个后代
//             XElement root = XElement.Parse(@"<Root>
//                           <Child1>
//                             <GrandChild1>GC1 Value</GrandChild1>
//                           </Child1>
//                           <Child2>
//                             <GrandChild2>GC2 Value</GrandChild2>
//                           </Child2>
//                           <Child3>
//                             <GrandChild3>GC3 Value</GrandChild3>
//                           </Child3>
//                           <Child4>
//                             <GrandChild4>GC4 Value</GrandChild4>
//                           </Child4>
//                         </Root>");

//             string grandChild3 = (string)
//                 (from el in root.Descendants("GrandChild3")
//                  select el).First();
//             Console.WriteLine(grandChild3);


            
/**/ /// /编写使用复杂筛选的查询
             // XElement root = XElement.Load("PurchaseOrders.xml");
            
// IEnumerable<XElement> purchaseOrders =
            
//     from el in root.Elements("PurchaseOrder")
            
//     where
            
//         (from add in el.Elements("Address")
            
//          where
            
//              (string)add.Attribute("Type") == "Shipping" &&
            
//              (string)add.Element("State") == "NY"
            
//          select add)
            
//         .Any()
            
//     select el;
            
// foreach (XElement el in purchaseOrders)
            
//     Console.WriteLine((string)el.Attribute("PurchaseOrderNumber"));


//              // 筛选可选元素
//             XElement root = XElement.Parse(@"<Root>
//                           <Child1>
//                             <Text>Child One Text</Text>
//                             <Type Value=""Yes""/>
//                           </Child1>
//                           <Child2>
//                             <Text>Child Two Text</Text>
//                             <Type Value=""Yes""/>
//                           </Child2>
//                           <Child3>
//                             <Text>Child Three Text</Text>
//                             <Type Value=""No""/>
//                           </Child3>
//                           <Child4>
//                             <Text>Child Four Text</Text>
//                             <Type Value=""Yes""/>
//                           </Child4>
//                           <Child5>
//                             <Text>Child Five Text</Text>
//                           </Child5>
//                         </Root>");
//             var cList =
//                 from typeElement in root.Elements().Elements("Type")
//                 where (string)typeElement.Attribute("Value") == "Yes"
//                 select (string)typeElement.Parent.Element("Text");
//             foreach (string str in cList)
//                 Console.WriteLine(str);


            
/**/ /// /对元素进行排序
             // XElement root = XElement.Load("Data.xml");
            
// IEnumerable<decimal> prices =
            
//     from el in root.Elements("Data")
            
//     let price = (decimal)el.Element("Price")
            
//     orderby price
            
//     select price;
            
// foreach (decimal el in prices)
            
//     Console.WriteLine(el);

            
/**/ /// /对多个键上的元素进行排序
             // XElement co = XElement.Load("CustomersOrders.xml");
            
// var sortedElements =
            
//     from c in co.Element("Orders").Elements("Order")
            
//     orderby (string)c.Element("ShipInfo").Element("ShipPostalCode"),
            
//             (DateTime)c.Element("OrderDate")
            
//     select new
            
//     {
            
//         CustomerID = (string)c.Element("CustomerID"),
            
//         EmployeeID = (string)c.Element("EmployeeID"),
            
//         ShipPostalCode = (string)c.Element("ShipInfo").Element("ShipPostalCode"),
            
//         OrderDate = (DateTime)c.Element("OrderDate")
            
//     };
            
// foreach (var r in sortedElements)
            
//     Console.WriteLine("CustomerID:{0} EmployeeID:{1} ShipPostalCode:{2} OrderDate:{3:d}",
            
//         r.CustomerID, r.EmployeeID, r.ShipPostalCode, r.OrderDate);


            
// 计算中间值
            
// XElement root = XElement.Load("Data.xml");
            
// IEnumerable<decimal> extensions =
            
//     from el in root.Elements("Data")
            
//     let extension = (decimal)el.Element("Quantity") * (decimal)el.Element("Price")
            
//     where extension >= 25
            
//     orderby extension
            

分享到:
评论

相关推荐

    精通LINQ LINQ to XML

    《精通LINQ LINQ to XML》是一本专为开发者深入理解和掌握LINQ(Language Integrated Query,语言集成查询)技术,特别是LINQ to XML部分而编写的权威指南。这本书结合了LINQ的基础、进阶和实战应用,是学习LINQ的...

    使用Linq To XML操作XML.pdf

    2. **操作XML的流程**:使用Linq To XML操作XML主要包括三个步骤:加载XML文档、查询XML数据和修改XML文档。加载XML文档可以通过读取文件或从字符串中解析XML;查询XML数据则利用Linq To XML提供的查询语法;修改XML...

    Linq to xml,读取XMl节点值

    在讨论 LINQ to XML 之前,我们先要了解 XML(Extensible Markup Language)的基本概念。XML 是一种标记语言,常用于存储和传输结构化数据。XML 文档由元素、属性、文本和注释等组成,其中元素是最基本的构建块,...

    LINQ To Xml示例程序

    与传统的DOM(文档对象模型)或XPath、XQuery等XML处理方法相比,LINQ to XML 提供了一种更简洁、类型安全的方式来创建、操作和查询XML文档。它的API设计紧密地与C#和VB.NET语言特性相结合,使得代码更加清晰、...

    linq to xml入门的例子

    ### LINQ to XML 基本概念 1. **XElement 和 XAttribute**: LINQ to XML 的核心类是 `XElement` 和 `XAttribute`。`XElement` 用于表示XML元素,而 `XAttribute` 用于表示元素的属性。它们都继承自 `XObject` 类,...

    LINQ to XML操作XML的代码,通过它很快掌握用内存在对象方式操作XML数据

    首先,让我们理解一下LINQ to XML的基本概念: 1. **XElement** 类:这是LINQ to XML的核心类,代表XML元素。你可以直接创建XElement对象,然后通过添加子元素、属性或其他元素来构建XML结构。例如: ```csharp ...

    LINQ TO XML操作示例 初学者必看

    LINQ TO XML操作示例 轻轻松松 学会简单操作 本例子包含了通过LINQ创建XML、加载XML、读取XML、修改XML元素、属性、删除XML元素节点、属性,XML排序,保存XML等 基本上XML的操作都包含在这里面了。 适合学习LINQ...

    linq to sql 、linq to xml 、linq to object

    LINQ to XML提供了一种新的处理XML文档的方式,它将XML文档视为对象集合,可以直接进行查询和修改。学习LINQ to XML涉及以下内容: - 概述:理解LINQ to XML的基本概念和优势。 - 编程概述:创建XML文档,添加、...

    linq to xml 增,删,改,查

    例如,下面的代码展示了如何使用LINQ to XML进行基本操作: ```csharp XDocument doc = XDocument.Load("Student.xml"); // 查询 var students = from student in doc.Descendants("Student") where (int)student...

    Linq to xml 案例

    本案例将深入探讨Linq to XML的基本用法,帮助你理解如何在实际项目中应用这一技术。 1. **XML基础知识** 在讨论Linq to XML之前,我们需要了解XML的基本结构。XML(Extensible Markup Language)是一种标记语言,...

    语言集成查询(LINQ)之LINQ.to.XML入门篇

    总的来说,“LINQ to XML入门篇”将引导我们逐步掌握如何在C#中利用LINQ查询XML数据,理解其基本语法、操作方法以及优势,从而在实际开发中提高效率,简化XML处理任务。学习并熟练掌握LINQ to XML,对于任何.NET...

    Linq to Xml practise

    在LINQ to XML中,`XElement`是基本的元素类,代表XML文档中的一个节点。你可以通过构造函数创建元素,并添加子元素、属性等。例如: ```csharp XElement root = new XElement("Root", new XElement("Child1", ...

    C# LinqXML使用LINQ技术对XML文件进行读取

    以上就是C#的LinqXML技术对XML文件进行读取和操作的基本步骤。通过这些方法,你可以轻松地对XML数据进行查询、筛选、转换、添加、修改和删除等操作。在实际项目中,根据具体需求,还可以结合其他LINQ方法和表达式...

    LINQ to XML 编程基础

    在LINQ to XML中,我们主要关注如何通过编程方式创建、查询和修改这些结构。 ### 2. LINQ to XML 类型系统 - `XElement`: 表示XML元素,是最基本的构建块。 - `XAttribute`: 表示XML属性。 - `XDocument`: 代表...

    跟我一起学Visual Studio 2008系列课程(7):语言集成查询(LINQ)之LINQ to XML入门篇

    通过这门课程,开发者不仅能够掌握LINQ to XML的基本用法,还能理解其背后的查询原理,从而在实际开发中更有效地处理XML数据,提升代码质量和效率。无论你是.NET框架的新手还是经验丰富的开发者,这都是一个深入了解...

    linq to xml的一些例子.doc

    以下是一些关于 LINQ to XML 的关键知识点: 1. **根据元素的名称进行筛选(有命名空间)** 在处理包含命名空间的 XML 文件时,需要先定义相应的命名空间。例如: ```csharp XNamespace aw = ...

    C#入门经典(第四版)第29章 LINQ to XML

    LINQ to XML是Microsoft .NET Framework 3.5中引入的一项功能,它提供了一种声明式的查询语言,允许开发人员以类似SQL的方式操作XML文档,而无需编写复杂的DOM或SAX代码。这极大地简化了对XML数据的读取、修改和创建...

    C# LinqXML合计XML元素值

    3. 查询XML元素:LINQ to XML 提供了丰富的查询表达式,如`from...select...`。例如,如果我们要计算所有`&lt;price&gt;`元素的总和,可以写如下代码: ```csharp var total = doc.Descendants("price") .Sum(element =&gt;...

    C# LinqXML查找根元素

    除了基本的获取根元素,Linq to XML还支持更复杂的查询。例如,你可以通过根元素进一步查询其子元素或属性,如下所示: ```csharp // 获取根元素的所有子元素 var childElements = rootElement.Elements(); // ...

Global site tag (gtag.js) - Google Analytics