Übersicht über LINQ to XML in Visual Basic
Visual Basic unterstützt LINQ to XML über XML-Literale und XML-Achseneigenschaften. Dadurch können Sie eine vertraute, praktische Syntax für die Arbeit mit XML in Ihrem Visual Basic-Code verwenden. XML-Literale ermöglichen die direkte Integration von XML in Ihren Code. XML-Achseneigenschaften ermöglichen den Zugriff auf untergeordnete Knoten, Nachfolgerknoten und Attribute eines XML-Literals. Weitere Informationen finden Sie unter Übersicht zu XML-Literalen (Visual Basic) sowie unter Zugreifen auf XML in Visual Basic.
LINQ to XML ist eine XML-Programmierschnittstelle (API) im Arbeitsspeicher, die speziell für die Nutzung von Language-Integrated Query (LINQ) entwickelt wurde. Die LINQ-APIs können zwar direkt aufgerufen werden, aber nur mit Visual Basic können Sie XML-Literale deklarieren und direkt auf XML-Achseneigenschaften zugreifen.
Hinweis
XML-Literale und XML-Achseneigenschaften werden in deklarativem Code auf einer ASP.NET-Seite nicht unterstützt. Wenn Sie XML-Features von Visual Basic nutzen möchten, müssen Sie Ihren Code auf einer CodeBehind-Seite in Ihrer ASP.NET-Anwendung platzieren.
Entsprechende Videodemonstrationen finden Sie unter [Vorgehensweise:] Erste Schritte mit LINQ to XML sowie unter [Vorgehensweise:] Erstellen von Excel-Tabellen mit LINQ to XML.
Erstellen von XML
Es gibt zwei Möglichkeiten, XML-Strukturen in Visual Basic zu erstellen: Sie können ein XML-Literal direkt im Code deklarieren oder die LINQ-APIs verwenden, um die Struktur zu erstellen. Beide Prozesse ermöglichen es dem Code, die endgültige Struktur der XML-Struktur 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 durch XML-Strukturen bereit. Mit diesen Eigenschaften können Sie auf XML-Elemente und -Attribute zugreifen, indem Sie die Namen der untergeordneten XML-Elemente angeben. Alternativ können Sie explizit die LINQ-Methoden für die Navigation und Suche im Zusammenhang mit 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 im Grunde einer Transformation entspricht.
' 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
In Visual Basic können Sie mithilfe der Imports
-Anweisung einen Alias für einen globalen XML-Namespace angeben. Das folgende Beispiel zeigt, wie Sie die Imports
-Anweisung verwenden, um einen XML-Namespace zu 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.
Mithilfe des GetXmlNamespace-Operators können Sie ein XNamespace-Objekt für ein bestimmtes Namespacepräfix abrufen.
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 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, in äquivalenten 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 den gleichen 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-Achseneigenschaften
In XML-Literalen deklarierte XML-Namespaces sind nicht für die Verwendung in XML-Achseneigenschaften verfügbar. Globale Namespaces können jedoch mit den XML-Achseneigenschaften verwendet werden. Verwenden Sie einen Doppelpunkt, um das XML-Namespacepräfix vom Namen des lokalen Elements zu trennen. Dies ist ein Beispiel:
Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)