Cenni preliminari su LINQ to XML in Visual Basic
Visual Basic fornisce supporto per LINQ to XML tramite valori letterali XML e proprietà axis XML. In questo modo, è possibile utilizzare una sintassi comoda e ben conosciuta per l'utilizzo di XML nel codice Visual Basic. I valori letterali XML consentono di includere direttamente l'XML nel codice. Le proprietà axis XML consentono di accedere a nodi figlio, a nodi derivati e agli attributi di un valore letterale XML. Per ulteriori informazioni, vedere Cenni preliminari sui valori letterali XML (Visual Basic) e Accesso a XML in Visual Basic.
LINQ to XML è un'API di programmazione XML in memoria progettata appositamente per consentire l'utilizzo di LINQ (Language-Integrated Query). Sebbene sia possibile chiamare direttamente le API LINQ, solo Visual Basic consente di dichiarare valori letterali XML e di accedere direttamente alle proprietà axis XML.
Nota
I valori letterali XML e le proprietà axis XML non sono supportate in codice dichiarativo in una pagina ASP.NET. Per utilizzare le funzionalità XML di Visual Basic, inserire il codice in una pagina code-behind nell'applicazione ASP.NET.
Per dimostrazioni video correlate, vedere Ricerca per categorie: Introduzione a LINQ to XML e Creazione di fogli di calcolo di Excel tramite LINQ to XML.
Creazione XML
Le strutture ad albero XML possono essere create in Visual Basic in due modi. È possibile dichiarare un valore letterale XML direttamente nel codice oppure è possibile utilizzare le API LINQ per creare la struttura ad albero. Entrambi i processi consentono al codice di riflettere la struttura finale della struttura ad albero XML. Nell'esempio di codice riportato di seguito viene creato un elemento 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>
Per ulteriori informazioni, vedere Creazione di XML in Visual Basic.
Accesso ed esplorazione XML
Visual Basic fornisce proprietà axis XML per l'accesso a strutture XML e l'esplorazione di tali strutture. Queste proprietà consentono di accedere a elementi e attributi XML specificando i nomi dell'elemento figlio XML. In alternativa, è possibile chiamare in modo esplicito i metodi LINQ per esplorare e individuare elementi e attributi. Nell'esempio di codice riportato di seguito vengono utilizzate le proprietà axis XML per fare riferimento agli attributi e agli elementi figlio di un elemento XML. Nell'esempio di codice viene utilizzata una query LINQ per recuperare elementi figlio e restituirli come elementi XML, eseguendo in effetti una trasformazione.
' 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
Per ulteriori informazioni, vedere Accesso a XML in Visual Basic.
Spazi dei nomi XML
Visual Basic consente di specificare un alias per uno spazio dei nomi XML globale utilizzando l'istruzione Imports. Nell'esempio riportato di seguito viene illustrato come utilizzare l'istruzione Imports per importare uno spazio dei nomi XML.
Imports <xmlns:ns="http://someNamespace">
È possibile utilizzare un alias dello spazio dei nomi XML quando si accede alle proprietà axis di XML e si dichiarano valori letterali XML per documenti ed elementi XML.
È possibile recuperare un oggetto XNamespace per un particolare prefisso dello spazio dei nomi utilizzando Operatore GetXmlNamespace (Visual Basic).
Per ulteriori informazioni, vedere Istruzione Imports (spazio dei nomi XML).
Utilizzare lo spazio dei nomi XML nei valori letterali XML
Nell'esempio riportato di seguito viene illustrato come creare un oggetto XElement che usa lo spazio dei nomi globale 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)
Il compilatore Visual Basic converte valori letterali XML che contengono alias dello spazio dei nomi XML in codice equivalente che utilizza la notazione XML per utilizzare gli spazi dei nomi XML, con l'attributo xmlns. Dopo la compilazione, il codice riportato nell'esempio della sezione precedente produce sostanzialmente lo stesso codice eseguibile dell'esempio seguente:
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)
Utilizzare gli spazi dei nomi XML in proprietà axis XML.
Gli spazi dei nomi XML dichiarati nei valori letterali XML non possono essere utilizzati in proprietà axis XML. Tuttavia, gli spazi dei nomi globali possono essere utilizzati con le proprietà axis XML. Utilizzare un segno di due punti per separare il prefisso dello spazio dei nomi XML dal nome dell'elemento locale. Di seguito è riportato un esempio:
Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)