`
gstarwd
  • 浏览: 1536673 次
  • 性别: 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节点值

    在讨论 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