Přehled technologie LINQ to XML v jazyce Visual Basic
Visual Basic poskytuje podporu LINQ to XML prostřednictvím literálů XML a vlastností osy XML. To vám umožní používat známou, pohodlnou syntaxi pro práci s XML v kódu jazyka Visual Basic. Literály XML umožňují zahrnout XML přímo do kódu. Vlastnosti osy XML umožňují přístup k podřízeným uzlům, následnickým uzlům a atributům literálu XML. Další informace naleznete v tématu Přehled literálů XML a přístup k XML v jazyce Visual Basic.
LINQ to XML je programovací rozhraní XML v paměti navržené speciálně pro využití jazykově integrovaných dotazů (LINQ). I když můžete volat rozhraní LINQ API přímo, pouze Jazyk Visual Basic umožňuje deklarovat literály XML a přímo přistupovat k vlastnostem osy XML.
Poznámka:
Literály XML a vlastnosti osy XML nejsou podporovány v deklarativním kódu na ASP.NET stránce. Pokud chcete použít funkce JAZYKA XML jazyka Visual Basic, umístěte kód na stránku s kódem do aplikace ASP.NET.
Související ukázky videa najdete v tématu Jak začít s LINQ to XML? a jak vytvořit excelové tabulky pomocí LINQ to XML?.
Vytváření XML
Existují dva způsoby, jak vytvořit stromy XML v jazyce Visual Basic. Literál XML můžete deklarovat přímo v kódu nebo můžete pomocí rozhraní LINQ API vytvořit strom. Oba procesy umožňují kódu odrážet konečnou strukturu stromu XML. Například následující příklad kódu vytvoří element XML:
Dim contact1 As XElement =
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
Další informace naleznete v tématu Vytváření XML v jazyce Visual Basic.
Přístup k XML a navigace v jazyce XML
Visual Basic poskytuje vlastnosti osy XML pro přístup ke strukturám XML a navigaci v jejich strukturách. Tyto vlastnosti umožňují přístup k elementům a atributům XML zadáním názvů podřízených elementů XML. Alternativně můžete explicitně volat metody LINQ pro navigaci a vyhledání elementů a atributů. Následující příklad kódu například používá vlastnosti osy XML odkazující na atributy a podřízené prvky elementu XML. Příklad kódu používá dotaz LINQ k načtení podřízených elementů a jejich výstupu jako elementů XML a efektivně provádí transformaci.
' Place Imports statements at the top of your program.
Imports <xmlns:ns="http://SomeNamespace">
Module Sample1
Sub SampleTransform()
' Create test by using a global XML namespace prefix.
Dim contact =
<ns:contact>
<ns:name>Patrick Hines</ns:name>
<ns:phone ns:type="home">206-555-0144</ns:phone>
<ns:phone ns:type="work">425-555-0145</ns:phone>
</ns:contact>
Dim phoneTypes =
<phoneTypes>
<%= From phone In contact.<ns:phone>
Select <type><%= phone.@ns:type %></type>
%>
</phoneTypes>
Console.WriteLine(phoneTypes)
End Sub
End Module
Další informace naleznete v tématu Přístup k XML v jazyce Visual Basic.
Obory názvů XML
Jazyk Visual Basic umožňuje zadat alias globálního oboru názvů XML pomocí příkazu Imports
. Následující příklad ukazuje, jak pomocí Imports
příkazu importovat obor názvů XML:
Imports <xmlns:ns="http://someNamespace">
Alias oboru názvů XML můžete použít, když přistupujete k vlastnostem osy XML a deklarujete literály XML pro dokumenty a elementy XML.
Objekt pro konkrétní předponu oboru názvů můžete načíst XNamespace pomocí getXmlNamespace – operátor.
Další informace naleznete v tématu Import – příkaz (obor názvů XML).
Použití oborů názvů XML v literálech XML
Následující příklad ukazuje, jak vytvořit XElement objekt, který používá globální obor názvů ns
:
Dim contact1 As XElement =
<ns:contact>
<ns:name>Patrick Hines</ns:name>
<ns:phone type="home">206-555-0144</ns:phone>
<ns:phone type="work">425-555-0145</ns:phone>
</ns:contact>
Console.WriteLine(contact1)
Kompilátor jazyka Visual Basic překládá literály XML, které obsahují aliasy oboru názvů XML, do ekvivalentního kódu, který používá zápis XML pro použití oborů názvů XML s atributem xmlns
. Při kompilaci vytvoří kód v příkladu předchozí části v podstatě stejný spustitelný kód jako v následujícím příkladu:
Dim contact2 As XElement =
<ns1:contact xmlns:ns1="http://someNamespace">
<ns1:name>Patrick Hines</ns1:name>
<ns1:phone type="home">206-555-0144</ns1:phone>
<ns1:phone type="work">425-555-0145</ns1:phone>
</ns1:contact>
Console.WriteLine(contact2)
Použití oborů názvů XML ve vlastnostech osy XML
Obory názvů XML deklarované v literálech XML nejsou k dispozici pro použití ve vlastnostech osy XML. Globální obory názvů se ale dají použít s vlastnostmi osy XML. Pomocí dvojtečky oddělte předponu oboru názvů XML od názvu místního elementu. Následuje příklad:
Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)