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.Load
XElement.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.Load
bir 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.Load
bir 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>