<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FXML_LINQ%2FQuery</id>
		<title>Csharp/C Sharp/XML LINQ/Query - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FXML_LINQ%2FQuery"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/XML_LINQ/Query&amp;action=history"/>
		<updated>2026-04-29T20:16:22Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/XML_LINQ/Query&amp;diff=246&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/XML_LINQ/Query&amp;diff=246&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:18Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/XML_LINQ/Query&amp;diff=247&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/XML_LINQ/Query&amp;diff=247&amp;oldid=prev"/>
				<updated>2010-05-26T11:34:03Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==A Simple XML Query Using LINQ to XML==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void Main() {&lt;br /&gt;
        XElement books = XElement.Parse(&lt;br /&gt;
          @&amp;quot;&amp;lt;books&amp;gt;&lt;br /&gt;
        &amp;lt;book&amp;gt;&lt;br /&gt;
          &amp;lt;title&amp;gt;P&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;author&amp;gt;J&amp;lt;/author&amp;gt;&lt;br /&gt;
        &amp;lt;/book&amp;gt;&lt;br /&gt;
        &amp;lt;book&amp;gt;&lt;br /&gt;
          &amp;lt;title&amp;gt;W&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;author&amp;gt;B&amp;lt;/author&amp;gt;&lt;br /&gt;
        &amp;lt;/book&amp;gt;&lt;br /&gt;
        &amp;lt;book&amp;gt;&lt;br /&gt;
          &amp;lt;title&amp;gt;C&amp;lt;/title&amp;gt;&lt;br /&gt;
          &amp;lt;author&amp;gt;A&amp;lt;/author&amp;gt;&lt;br /&gt;
        &amp;lt;/book&amp;gt;&lt;br /&gt;
    &amp;lt;/books&amp;gt;&amp;quot;);&lt;br /&gt;
        var titles =&lt;br /&gt;
         from book in books.Elements(&amp;quot;book&amp;quot;)&lt;br /&gt;
         where (string)book.Element(&amp;quot;author&amp;quot;) == &amp;quot;J&amp;quot;&lt;br /&gt;
         select book.Element(&amp;quot;title&amp;quot;);&lt;br /&gt;
        foreach (var title in titles)&lt;br /&gt;
            Console.WriteLine(title.Value);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Get Node by type with OfType==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Data.Linq;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        XElement xml = XElement.Load(&amp;quot;Employee.xml&amp;quot;);&lt;br /&gt;
        IEnumerable&amp;lt;XComment&amp;gt; record = xml.Nodes().OfType&amp;lt;XComment&amp;gt;();&lt;br /&gt;
        foreach (XComment comment in record)&lt;br /&gt;
            Console.WriteLine(comment);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Query string array by its element length==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
class HelloWorld {&lt;br /&gt;
    static void Main() {&lt;br /&gt;
        string[] words = { &amp;quot;hello&amp;quot;, &amp;quot;wonderful&amp;quot;, &amp;quot;linq&amp;quot;, &amp;quot;beautiful&amp;quot;, &amp;quot;world&amp;quot; };&lt;br /&gt;
        var shortWords = from word in words&lt;br /&gt;
                         where word.Length &amp;lt;= 5&lt;br /&gt;
                         select word;&lt;br /&gt;
        foreach (var word in shortWords)&lt;br /&gt;
            Console.WriteLine(word);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Query XML document by attribute==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Data.Linq;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        XElement xml = XElement.Load(&amp;quot;Employee.xml&amp;quot;);&lt;br /&gt;
        var query = from s in xml.Elements(&amp;quot;salary&amp;quot;).Elements(&amp;quot;idperson&amp;quot;)&lt;br /&gt;
                    where (int)s.Attribute(&amp;quot;year&amp;quot;) == 2004&lt;br /&gt;
                    select s;&lt;br /&gt;
        foreach (var record in query) {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Amount: {0}&amp;quot;, (string)record.Attribute(&amp;quot;salaryyear&amp;quot;));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Query XML document with Ancestors and First==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Data.Linq;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        XElement xml = XElement.Load(&amp;quot;Employee.xml&amp;quot;);&lt;br /&gt;
        var record = xml.Descendants(&amp;quot;firstname&amp;quot;).First();&lt;br /&gt;
        foreach (var tag in record.Ancestors())&lt;br /&gt;
            Console.WriteLine(tag.Name);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Query XML document with where clause==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Data.Linq;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        XElement xml = XElement.Load(@&amp;quot;Employee.xml&amp;quot;);&lt;br /&gt;
        var query = from p in xml.Elements(&amp;quot;person&amp;quot;)&lt;br /&gt;
                    where (int)p.Element(&amp;quot;id&amp;quot;) == 1&lt;br /&gt;
                    select p;&lt;br /&gt;
        foreach (var record in query) {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Employee: {0} {1}&amp;quot;,&lt;br /&gt;
                                                record.Element(&amp;quot;firstname&amp;quot;),&lt;br /&gt;
                                                record.Element(&amp;quot;lastname&amp;quot;));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Query XML with Descendants==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Data.Linq;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        XElement xml = XElement.Load(&amp;quot;Employee.xml&amp;quot;);&lt;br /&gt;
        var query = from p in xml.Descendants(&amp;quot;person&amp;quot;)&lt;br /&gt;
                    join s in xml.Descendants(&amp;quot;id&amp;quot;)&lt;br /&gt;
                    on (int)p.Element(&amp;quot;id&amp;quot;) equals (int)s.Attribute(&amp;quot;id&amp;quot;)&lt;br /&gt;
                    select new {&lt;br /&gt;
                        FirstName = p.Element(&amp;quot;firstname&amp;quot;).Value,&lt;br /&gt;
                        LastName = p.Element(&amp;quot;lastname&amp;quot;).Value,&lt;br /&gt;
                        Amount = s.Attribute(&amp;quot;salaryyear&amp;quot;).Value&lt;br /&gt;
                    };&lt;br /&gt;
        foreach (var record in query) {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Employee: {0} {1}, Salary {2}&amp;quot;, record.FirstName,&lt;br /&gt;
                                                            record.LastName,&lt;br /&gt;
                                                            record.Amount);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Query XML with namespace==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Data.Linq;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        XElement xml = XElement.Load(&amp;quot;Hello.xml&amp;quot;);&lt;br /&gt;
        XNamespace o = &amp;quot;urn:schemas-microsoft-com:office:office&amp;quot;;&lt;br /&gt;
        var query = from w in xml.Descendants(o + &amp;quot;Author&amp;quot;)&lt;br /&gt;
                    select w;&lt;br /&gt;
        foreach (var record in query)&lt;br /&gt;
            Console.WriteLine(&amp;quot;Author: {0}&amp;quot;, (string)record);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Use Linq query to get XML document elements==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Data.Linq;&lt;br /&gt;
using System.Reflection;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
class Program {&lt;br /&gt;
    static void Main(string[] args) {&lt;br /&gt;
        XElement xml = XElement.Load(&amp;quot;Employee.xml&amp;quot;);&lt;br /&gt;
        XElement html = new XElement(&amp;quot;HTML&amp;quot;,&lt;br /&gt;
                                new XElement(&amp;quot;BODY&amp;quot;,&lt;br /&gt;
                                    new XElement(&amp;quot;TABLE&amp;quot;,&lt;br /&gt;
                                        new XElement(&amp;quot;TH&amp;quot;, &amp;quot;ID&amp;quot;),&lt;br /&gt;
                                        new XElement(&amp;quot;TH&amp;quot;, &amp;quot;Full Name&amp;quot;),&lt;br /&gt;
                                        new XElement(&amp;quot;TH&amp;quot;, &amp;quot;Role&amp;quot;),&lt;br /&gt;
                                            from p in xml.Descendants(&amp;quot;person&amp;quot;)&lt;br /&gt;
                                            join r in xml.Descendants(&amp;quot;role&amp;quot;) on (int)p.Element(&amp;quot;idrole&amp;quot;) equals (int)r.Element(&amp;quot;id&amp;quot;)&lt;br /&gt;
                                            select new XElement(&amp;quot;TR&amp;quot;,&lt;br /&gt;
                                                            new XElement(&amp;quot;TD&amp;quot;, p.Element(&amp;quot;id&amp;quot;).Value),&lt;br /&gt;
                                                            new XElement(&amp;quot;TD&amp;quot;, p.Element(&amp;quot;firstname&amp;quot;).Value + &amp;quot; &amp;quot; + p.Element(&amp;quot;lastname&amp;quot;).Value),&lt;br /&gt;
                                                            new XElement(&amp;quot;TD&amp;quot;, r.Element(&amp;quot;roledescription&amp;quot;).Value)))));&lt;br /&gt;
        html.Save(@&amp;quot;C:\People.html&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==use Linq to query an XML document==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt; &lt;br /&gt;
using System;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Xml;&lt;br /&gt;
using System.Xml.Linq;&lt;br /&gt;
&lt;br /&gt;
static class HelloLinqToXml {&lt;br /&gt;
    static void Main() {&lt;br /&gt;
        var books = new[] {&lt;br /&gt;
      new {Title=&amp;quot;A&amp;quot;, Publisher=&amp;quot;M&amp;quot;, Year=2005 },&lt;br /&gt;
      new {Title=&amp;quot;W&amp;quot;, Publisher=&amp;quot;M&amp;quot;, Year=2006 },&lt;br /&gt;
      new {Title=&amp;quot;R&amp;quot;, Publisher=&amp;quot;M&amp;quot;, Year=2006 }&lt;br /&gt;
    };&lt;br /&gt;
        XElement xml = new XElement(&amp;quot;books&amp;quot;,&lt;br /&gt;
          from book in books&lt;br /&gt;
          where book.Year == 2006&lt;br /&gt;
          select new XElement(&amp;quot;book&amp;quot;,&lt;br /&gt;
            new XAttribute(&amp;quot;title&amp;quot;, book.Title),&lt;br /&gt;
            new XElement(&amp;quot;publisher&amp;quot;, book.Publisher)&lt;br /&gt;
          )&lt;br /&gt;
        );&lt;br /&gt;
        Console.WriteLine(xml);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>