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.
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)