Freigeben über


Übersicht über LINQ to XML in Visual Basic

Visual Basic bietet Unterstützung für LINQ to XML über XML-Literale und XML-Achseneigenschaften. Auf diese Weise können Sie eine vertraute, bequeme Syntax zum Arbeiten mit XML in Ihrem Visual Basic-Code verwenden. MIT XML-Literalen können Sie XML direkt in Ihren Code einschließen. XML-Achseneigenschaften ermöglichen den Zugriff auf untergeordnete Knoten, Nachfolgerknoten und Attribute eines XML-Literals. Weitere Informationen finden Sie im Abschnitt XML-Literale Übersicht und Zugriff auf XML in Visual Basic.

LINQ to XML ist eine IN-Memory-XML-Programmier-API, die speziell für die Nutzung von Language-Integrated Query (LINQ) entwickelt wurde. Obwohl Sie die LINQ-APIs direkt aufrufen können, ermöglicht nur Visual Basic die Deklaration von XML-Literalen und den direkten Zugriff auf XML-Achseneigenschaften.

Hinweis

XML-Literale und XML-Achseneigenschaften werden in deklarativem Code auf einer ASP.NET Seite nicht unterstützt. Um Visual Basic-XML-Features zu verwenden, platzieren Sie Ihren Code in einer CodeBehind-Seite in Ihrer ASP.NET-Anwendung.

Schaltfläche Verwandte Videodemonstrationen finden Sie unter How Do I Get Started with LINQ to XML? and How Do I Create Excel Spreadsheets using LINQ to XML?.

Erstellen von XML

Es gibt zwei Möglichkeiten zum Erstellen von XML-Strukturen in Visual Basic. Sie können ein XML-Literal direkt im Code deklarieren, oder Sie können die LINQ-APIs verwenden, um einen Baum zu erstellen. Beide Prozesse ermöglichen es dem Code, die endgültige Struktur des XML-Baums widerzuspiegeln. Im folgenden Codebeispiel wird beispielsweise ein XML-Element erstellt:

Dim contact1 As XElement = 
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

Weitere Informationen finden Sie unter Erstellen von XML in Visual Basic.

Zugreifen auf und Navigieren in XML

Visual Basic stellt XML-Achseneigenschaften für den Zugriff auf und die Navigation in XML-Strukturen bereit. Mit diesen Eigenschaften können Sie auf XML-Elemente und -Attribute zugreifen, indem Sie die untergeordneten XML-Elementnamen angeben. Alternativ können Sie die LINQ-Methoden explizit zum Navigieren und Suchen von Elementen und Attributen aufrufen. Im folgenden Codebeispiel werden beispielsweise XML-Achseneigenschaften verwendet, um auf die Attribute und untergeordneten Elemente eines XML-Elements zu verweisen. Im Codebeispiel wird eine LINQ-Abfrage verwendet, um untergeordnete Elemente abzurufen und als XML-Elemente auszugeben, was eine Transformation effektiv ausführt.

' 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

Weitere Informationen finden Sie unter Zugreifen auf XML in Visual Basic.

XML-Namespaces

Mit Visual Basic können Sie einen Alias für einen globalen XML-Namespace mithilfe der Imports Anweisung angeben. Das folgende Beispiel zeigt, wie Sie mithilfe der Imports Anweisung einen XML-Namespace importieren:

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

Sie können einen XML-Namespacealias verwenden, wenn Sie auf XML-Achseneigenschaften zugreifen und XML-Literale für XML-Dokumente und -Elemente deklarieren.

Sie können ein XNamespace Objekt für ein bestimmtes Namespacepräfix abrufen, indem Sie den GetXmlNamespace-Operator verwenden.

Weitere Informationen finden Sie unter Imports-Anweisung (XML-Namespace).

Verwenden von XML-Namespaces in XML-Literalen

Das folgende Beispiel zeigt, wie Sie ein XElement Objekt erstellen, das den globalen Namespace nsverwendet:

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)

Der Visual Basic-Compiler übersetzt XML-Literale, die XML-Namespacealiasen enthalten, in gleichwertigen Code, der die XML-Notation für die Verwendung von XML-Namespaces mit dem xmlns Attribut verwendet. Bei der Kompilierung erzeugt der Code im Beispiel des vorherigen Abschnitts im Wesentlichen denselben ausführbaren Code wie im folgenden Beispiel:

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)

Verwenden von XML-Namespaces in XML-Achsenattributen

XML-Namespaces, die in XML-Literalen deklariert sind, sind für die Verwendung in XML-Achsen-Eigenschaften nicht verfügbar. Globale Namespaces können jedoch mit den XML-Achseneigenschaften verwendet werden. Verwenden Sie einen Doppelpunkt, um das XML-Namespacepräfix vom lokalen Elementnamen zu trennen. Es folgt ein Beispiel:

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

Siehe auch