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.

Play button 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)

Viz také