Übersicht über LINQ to XML in Visual Basic

Aktualisiert: November 2007

Visual Basic unterstützt LINQ to XML durch XML-Literale und XML-Achseneigenschaften. Dies ermöglicht Ihnen, im Visual Basic-Code mit vertrauter, zweckmäßiger Syntax in XML zu arbeiten. XML-Literale ermöglichen die direkte Aufnahme von XML in den Code. XML-Achseneigenschaften ermöglichen den Zugriff auf untergeordnete Knoten, nachfolgende Knoten und Attribute eines XML-Literals. Weitere Informationen finden Sie unter Übersicht über XML-Literale und unter Zugreifen auf XML in Visual Basic.

LINQ to XML ist eine XML-Programmier-API im Speicher, die speziell entworfen wurde, um die Vorteile von Sprachintegrierte Abfrage (Language-Integrated Query, LINQ) zu nutzen. Sie können zwar LINQ-APIs direkt aufrufen, Sie können jedoch nur in Visual Basic XML-Literale deklarieren und direkt auf XML-Achseneigenschaften zugreifen.

Hinweis:

In einer ASP.NET-Seite werden XML-Literale und XML-Achseneigenschaften in deklarativem Code nicht unterstützt. Sie können XML-Features von Visual Basic verwenden, indem Sie in der ASP.NET-Anwendung den Code in eine Code-Behind-Seite einfügen.

Erstellen von XML

In Visual Basic gibt es zwei Möglichkeiten zum Erstellen von XML-Strukturen. Sie können ein XML-Literal direkt im Code deklarieren oder die Struktur mithilfe der LINQ-APIs erstellen. Mit beiden Vorgehensweisen kann die endgültige XML-Struktur im Code abgebildet werden. So wird beispielsweise mit dem folgenden Codebeispiel 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

Mit den XML-Achseneigenschaften von Visual Basic kann auf XML-Strukturen zugegriffen und darin navigiert werden. Diese Eigenschaften ermöglichen den Zugriff auf XML-Elemente und -Attribute mittels Namensangabe untergeordneter XML-Elemente. Sie können die LINQ-Methoden auch explizit aufrufen, um zu navigieren und nach Elemente und Attributen zu suchen. Im folgenden Codebeispiel wird beispielsweise mit XML-Achseneigenschaften auf Attribute und untergeordnete Elemente eines XML-Elements Bezug genommen. Mit einer LINQ-Abfrage werden in diesem Beispiel untergeordnete Elemente abgerufen und als XML-Elemente ausgegeben, wobei eine Transformation stattfindet.

' 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

Visual Basic ermöglicht Ihnen, mit der Imports-Anweisung einen Alias für einen globalen XML-Namespace anzugeben. Im folgenden Beispiel wird gezeigt, wie mit der Imports-Anweisung ein XML-Namespace importiert werden kann:

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

Sie können einen Alias für einen XML-Namespace 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

Im folgenden Beispiel wird gezeigt, wie ein XElement-Objekt erstellt wird, das den globalen Namespace ns verwendet:

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-Namespacealiase enthalten, mit dem xmlns-Attribut in entsprechenden Code, der die XML-Notation für XML-Namespaces verwendet. Beim Kompilieren des Beispielcodes aus dem vorangegangenen Abschnitt wird im Wesentlichen der gleiche ausführbare Code erzeugt 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-Achseneigenschaften

In XML-Literalen deklarierte XML-Namespaces lassen sich in XML-Achseneigenschaften nicht verwenden. Globale Namespaces können jedoch mit den XML-Achseneigenschaften verwendet werden. Mit einem Doppelpunkt können Sie das XML-Namespacepräfix vom lokalen Elementnamen trennen. Beachten Sie folgendes Beispiel:

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

Siehe auch

Weitere Ressourcen

XML in Visual Basic

Erstellen von XML in Visual Basic

Zugreifen auf XML in Visual Basic

Bearbeiten von XML in Visual Basic