Aracılığıyla paylaş


Sorgula XDocument ve sorgula XElement (LINQ to XML)

aracılığıyla bir belge yüklerken yazdığınız sorgu, aracılığıyla XDocument.LoadXElement.Loadyüklediğinizde yazdığınız sorgudan biraz farklıdır.

ve karşılaştırması XDocument.LoadXElement.Load

aracılığıyla XElement.Loadbir XElement XML belgesi yüklediğinizde, XElement XML ağacının kökündeki öğesi yüklenen belgenin kök öğesini içerir. Ancak, aracılığıyla aynı XML belgesini bir XDocumentXDocument.Loadiçine yüklediğinizde, ağacın kökü bir XDocument düğümdür ve yüklenen belgenin kök öğesi, öğesinin XDocumentizin verilen tek alt XElement düğümüdür. LINQ to XML eksenleri kök düğüme göre çalışır.

Örnek: kullanarak XElement.Loadbir XML ağacı yükleyin, ardından alt öğeler için sorgu yapın

Bu ilk örnek kullanarak Loadbir XML ağacı yükler. Ardından, ağacın kökünün alt öğelerini sorgular.

// 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);
' Create a simple document and  write it to a file
File.WriteAllText("Test.xml", "<Root>" + Environment.NewLine + _
    "    <Child1>1</Child1>" + Environment.NewLine + _
    "    <Child2>2</Child2>" + Environment.NewLine + _
    "    <Child3>3</Child3>" + Environment.NewLine + _
    "</Root>")

Console.WriteLine("Querying tree loaded with XElement.Load")
Console.WriteLine("----")
Dim doc As XElement = XElement.Load("Test.xml")
Dim childList As IEnumerable(Of XElement) = _
        From el In doc.Elements() _
        Select el
For Each e As XElement In childList
    Console.WriteLine(e)
Next

Bu örnek aşağıdaki çıkışı oluşturur:

Querying tree loaded with XElement.Load
----
<Child1>1</Child1>
<Child2>2</Child2>
<Child3>3</Child3>

Örnek: kullanarak XDocument.Loadbir XML ağacı yükleyin, ardından alt öğeler için sorgu yapın

Sonraki örnek yukarıdakiyle aynı işlemi yapar, ancak XML ağacı yerine içine XDocumentXElementyüklenmiştir.

// 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 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);
' Create a simple document and  write it to a file
File.WriteAllText("Test.xml", "<Root>" + Environment.NewLine + _
    "    <Child1>1</Child1>" + Environment.NewLine + _
    "    <Child2>2</Child2>" + Environment.NewLine + _
    "    <Child3>3</Child3>" + Environment.NewLine + _
    "</Root>")

Console.WriteLine("Querying tree loaded with XDocument.Load")
Console.WriteLine("----")
Dim doc As XDocument = XDocument.Load("Test.xml")
Dim childList As IEnumerable(Of XElement) = _
        From el In doc.Elements() _
        Select el
For Each e As XElement In childList
    Console.WriteLine(e)
Next

Bu örnek aşağıdaki çıkışı oluşturur:

Querying tree loaded with XDocument.Load
----
<Root>
  <Child1>1</Child1>
  <Child2>2</Child2>
  <Child3>3</Child3>
</Root>

Aynı sorgunun üç alt düğüm yerine bir Root düğümü döndürdüğünü fark edin.

Bununla ilgilenmenin bir yaklaşımı, eksen yöntemlerine Root erişmeden önce aşağıdaki gibi özelliğini kullanmaktır:

// 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 XDocument.Load");
Console.WriteLine("----");
XDocument doc = XDocument.Load("Test.xml");
IEnumerable<XElement> childList =
    from el in doc.Root.Elements()
    select el;
foreach (XElement e in childList)
    Console.WriteLine(e);
' Create a simple document and  write it to a file
File.WriteAllText("Test.xml", "<Root>" + Environment.NewLine + _
    "    <Child1>1</Child1>" + Environment.NewLine + _
    "    <Child2>2</Child2>" + Environment.NewLine + _
    "    <Child3>3</Child3>" + Environment.NewLine + _
    "</Root>")

Console.WriteLine("Querying tree loaded with XDocument.Load")
Console.WriteLine("----")
Dim doc As XDocument = XDocument.Load("Test.xml")
Dim childList As IEnumerable(Of XElement) = _
        From el In doc.Root.Elements() _
        Select el
For Each e As XElement In childList
    Console.WriteLine(e)
Next

Bu sorgu artık kök dizinindeki ağaçtaki XElementsorguyla aynı şekilde gerçekleştirilir.

Bu örnek aşağıdaki çıkışı oluşturur:

Querying tree loaded with XDocument.Load
----
<Child1>1</Child1>
<Child2>2</Child2>
<Child3>3</Child3>