Ü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
Erstellen von XML in Visual Basic