Cenni preliminari su LINQ to XML in Visual Basic

Visual Basic fornisce il supporto per la LINQ to XML tramite valori letterali XML e proprietà axis XML. In questo modo è possibile usare una sintassi familiare e pratica per l'uso di XML nel Visual Basic codice. I valori letterali XML consentono di includere xml direttamente nel codice. Le proprietà dell'asse XML consentono di accedere a nodi figlio, nodi discendenti e attributi di un valore letterale XML. Per altre informazioni, vedere Cenni preliminari sui valori letterali XML e Accesso a XML in Visual Basic.

LINQ to XML è un'API di programmazione XML in memoria progettata specificamente per sfruttare Language-Integrated Query (LINQ). Sebbene sia possibile chiamare direttamente le API LINQ, solo Visual Basic consente di dichiarare valori letterali XML e di accedere direttamente alle proprietà dell'asse XML.

Nota

I valori letterali XML e le proprietà dell'asse XML non sono supportati nel codice dichiarativo in ASP.NET pagina. Per usare Visual Basic funzionalità XML, inserire il codice in una pagina code-behind nell'ASP.NET applicazione.

Pulsante Riproduci Per le dimostrazioni video correlate, vedere How Do I Informazioni di base with LINQ to XML? (Come si usano i LINQ to XML? e How Do I Create Excel Spreadsheets using LINQ to XML?.

Creazione di XML

Esistono due modi per creare alberi XML in Visual Basic. È possibile dichiarare un valore letterale XML direttamente nel codice oppure usare le API LINQ per creare l'albero. Entrambi i processi consentono al codice di riflettere la struttura finale dell'albero XML. Ad esempio, nell'esempio di codice seguente 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 altre informazioni, vedere Creating XML in Visual Basic.

Accesso ed esplorazione di XML

Visual Basic le proprietà dell'asse XML per l'accesso e l'esplorazione di strutture XML. Queste proprietà consentono di accedere agli elementi e agli attributi XML specificando i nomi degli elementi figlio XML. In alternativa, è possibile chiamare in modo esplicito i metodi LINQ per l'esplorazione e l'individuazione di elementi e attributi. Nell'esempio di codice seguente, ad esempio, vengono utilizzate le proprietà dell'asse XML per fare riferimento agli attributi e agli elementi figlio di un elemento XML. L'esempio di codice usa una query LINQ per recuperare gli elementi figlio e generarli come elementi XML, eseguendo in modo efficace 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 altre 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 usando Imports l'istruzione . Nell'esempio seguente viene illustrato come utilizzare Imports l'istruzione 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à dell'asse 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 usando l'operatore GetXmlNamespace.

Per altre informazioni, vedere Istruzione Imports (spazio dei nomi XML).

Utilizzo di spazi dei nomi XML in valori letterali XML

Nell'esempio seguente viene illustrato come creare un XElement oggetto che utilizza 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 Visual Basic converte i valori letterali XML che contengono alias dello spazio dei nomi XML in codice equivalente che usa la notazione XML per l'utilizzo degli spazi dei nomi XML, con xmlns l'attributo . Quando viene compilato, il codice nell'esempio della sezione precedente produce essenzialmente 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)

Utilizzo di spazi dei nomi XML nelle proprietà dell'asse XML

Gli spazi dei nomi XML dichiarati nei valori letterali XML non sono disponibili per l'utilizzo nelle proprietà dell'asse XML. Tuttavia, gli spazi dei nomi globali possono essere utilizzati con le proprietà dell'asse XML. Usare i due punti per separare il prefisso dello spazio dei nomi XML dal nome dell'elemento locale. Di seguito è illustrato un esempio:

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

Vedi anche