Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha egy névtérben lévő XML-lekérdezésre szeretne lekérdezést írni, a megfelelő névtérrel rendelkező objektumokat kell használnia XName .
A C# esetében a leggyakoribb módszer az URI-t tartalmazó sztring XNamespace inicializálása, majd az összeadás operátor túlterhelése a névtér és a helyi név kombinálásához.
A Visual Basic esetében a leggyakoribb módszer egy globális névtér definiálása, majd a globális névteret használó XML-literálok és XML-tulajdonságok használata. Meghatározhat egy globális alapértelmezett névteret, amely esetben az XML-literálok elemei alapértelmezés szerint a névtérben lesznek. Másik lehetőségként megadhat egy globális névteret egy előtaggal, majd szükség szerint használhatja az előtagot az XML-literálokban és az XML-tulajdonságokban. Az XML más formáihoz hasonlóan az attribútumok alapértelmezés szerint nincs névtérben.
A cikk első példája bemutatja, hogyan hozhat létre XML-fát egy alapértelmezett névtérben. A második bemutatja, hogyan hozhat létre XML-fát egy névtérben egy előtaggal.
Példa: Fa létrehozása alapértelmezett névtérben és elemek lekérése
Az alábbi példa egy alapértelmezett névtérben lévő XML-fát hoz létre, majd lekéri az elemek gyűjteményét.
XNamespace aw = "http://www.adventure-works.com";
XElement root = XElement.Parse(
@"<Root xmlns='http://www.adventure-works.com'>
<Child>1</Child>
<Child>2</Child>
<Child>3</Child>
<AnotherChild>4</AnotherChild>
<AnotherChild>5</AnotherChild>
<AnotherChild>6</AnotherChild>
</Root>");
IEnumerable<XElement> c1 =
from el in root.Elements(aw + "Child")
select el;
foreach (XElement el in c1)
Console.WriteLine((int)el);
Imports <xmlns="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim root As XElement = _
<Root>
<Child>1</Child>
<Child>2</Child>
<Child>3</Child>
<AnotherChild>4</AnotherChild>
<AnotherChild>5</AnotherChild>
<AnotherChild>6</AnotherChild>
</Root>
Dim c1 As IEnumerable(Of XElement) = _
From el In root.<Child> _
Select el
For Each el As XElement In c1
Console.WriteLine(el.Value)
Next
End Sub
End Module
Ez a példa a következő kimenetet hozza létre:
1
2
3
Példa: Fa létrehozása névtérben előtaggal és elemek lekérése
A C#-ban ugyanúgy ír lekérdezéseket, függetlenül attól, hogy olyan XML-fán ír lekérdezéseket, amely előtaggal rendelkező névteret használ, vagy egy alapértelmezett névteret tartalmazó XML-fán.
Az alábbi példa létrehoz egy XML-fát, amely egy előtaggal rendelkező névtérben található, majd lekéri az elemek gyűjteményét.
XNamespace aw = "http://www.adventure-works.com";
XElement root = XElement.Parse(
@"<aw:Root xmlns:aw='http://www.adventure-works.com'>
<aw:Child>1</aw:Child>
<aw:Child>2</aw:Child>
<aw:Child>3</aw:Child>
<aw:AnotherChild>4</aw:AnotherChild>
<aw:AnotherChild>5</aw:AnotherChild>
<aw:AnotherChild>6</aw:AnotherChild>
</aw:Root>");
IEnumerable<XElement> c1 =
from el in root.Elements(aw + "Child")
select el;
foreach (XElement el in c1)
Console.WriteLine((int)el);
Imports <xmlns:aw="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim root As XElement = _
<aw:Root>
<aw:Child>1</aw:Child>
<aw:Child>2</aw:Child>
<aw:Child>3</aw:Child>
<aw:AnotherChild>4</aw:AnotherChild>
<aw:AnotherChild>5</aw:AnotherChild>
<aw:AnotherChild>6</aw:AnotherChild>
</aw:Root>
Dim c1 As IEnumerable(Of XElement) = _
From el In root.<aw:Child> _
Select el
For Each el As XElement In c1
Console.WriteLine(CInt(el))
Next
End Sub
End Module
Ez a példa a következő kimenetet hozza létre:
1
2
3