Udostępnij za pośrednictwem


Przegląd LINQ to XML w Visual Basic

Język Visual Basic zapewnia obsługę linQ to XML za pomocą literałów XML i właściwości osi XML. Dzięki temu można użyć znanej, wygodnej składni do pracy z kodem XML w języku Visual Basic. Literały XML umożliwiają dołączanie kodu XML bezpośrednio do kodu. Właściwości osi XML umożliwiają dostęp do węzłów podrzędnych, węzłów podrzędnych i atrybutów literału XML. Aby uzyskać więcej informacji, zobacz Omówienie literałów XML i uzyskiwanie dostępu do kodu XML w Visual Basic.

LINQ to XML to interfejs API programowania XML w pamięci przeznaczony specjalnie do korzystania z zapytań zintegrowanych z językiem (LINQ). Chociaż interfejsy API LINQ można wywoływać bezpośrednio, tylko język Visual Basic umożliwia deklarowanie literałów XML i bezpośredni dostęp do właściwości osi XML.

Uwaga

Literały XML i właściwości osi XML nie są obsługiwane w kodzie deklaratywnym na stronie ASP.NET. Aby użyć funkcji XML języka Visual Basic, umieść kod na stronie za pomocą kodu w aplikacji ASP.NET.

Play button Aby zapoznać się z powiązanymi pokazami wideo, zobacz Jak rozpocząć pracę z LINQ to XML? i Jak utworzyć arkusze kalkulacyjne programu Excel przy użyciu linQ to XML?.

Tworzenie kodu XML

Istnieją dwa sposoby tworzenia drzew XML w Visual Basic. Literał XML można zadeklarować bezpośrednio w kodzie lub użyć interfejsów API LINQ do utworzenia drzewa. Oba procesy umożliwiają kodowi odzwierciedlić ostateczną strukturę drzewa XML. Na przykład poniższy przykład kodu tworzy 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>

Aby uzyskać więcej informacji, zobacz Tworzenie kodu XML w Visual Basic.

Uzyskiwanie dostępu do kodu XML i nawigowanie po pliku XML

Język Visual Basic udostępnia właściwości osi XML na potrzeby uzyskiwania dostępu do struktur XML i nawigowania po tych strukturach. Te właściwości umożliwiają dostęp do elementów i atrybutów XML, określając nazwy elementów podrzędnych XML. Alternatywnie można jawnie wywołać metody LINQ na potrzeby nawigowania i lokalizowania elementów i atrybutów. Na przykład poniższy przykład kodu używa właściwości osi XML do odwoływania się do atrybutów i elementów podrzędnych elementu XML. W przykładzie kodu użyto zapytania LINQ, aby pobrać elementy podrzędne i wygenerować je jako elementy XML, efektywnie wykonując transformację.

' 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

Aby uzyskać więcej informacji, zobacz Uzyskiwanie dostępu do kodu XML w Visual Basic.

Przestrzenie nazw XML

Język Visual Basic umożliwia określenie aliasu globalnej przestrzeni nazw XML przy użyciu instrukcji Imports . W poniższym przykładzie pokazano, jak zaimportować przestrzeń nazw XML przy Imports użyciu instrukcji :

Imports <xmlns:ns="http://someNamespace">

Alias przestrzeni nazw XML można użyć podczas uzyskiwania dostępu do właściwości osi XML i deklarowania literałów XML dla dokumentów i elementów XML.

Obiekt dla określonego prefiksu przestrzeni nazw można pobrać XNamespace przy użyciu operatora GetXmlNamespace.

Aby uzyskać więcej informacji, zobacz Import Statement (XML Namespace).

Używanie przestrzeni nazw XML w literałach XML

W poniższym przykładzie pokazano, jak utworzyć XElement obiekt używający globalnej przestrzeni nazw 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)

Kompilator języka Visual Basic tłumaczy literały XML zawierające aliasy przestrzeni nazw XML na równoważny kod, który używa notacji XML do używania przestrzeni nazw XML z atrybutem xmlns . Po skompilowaniu kod w przykładzie poprzedniej sekcji tworzy zasadniczo ten sam kod wykonywalny, co w poniższym przykładzie:

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)

Używanie przestrzeni nazw XML we właściwościach osi XML

Przestrzenie nazw XML zadeklarowane w literałach XML nie są dostępne do użycia we właściwościach osi XML. Można jednak używać globalnych przestrzeni nazw z właściwościami osi XML. Użyj dwukropka, aby oddzielić prefiks przestrzeni nazw XML od nazwy elementu lokalnego. Oto przykład:

Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)

Zobacz też