Cenni preliminari su LINQ to XML in Visual BasicOverview of LINQ to XML in Visual Basic

Visual Basic fornisce supporto per LINQ to XMLLINQ to XML i valori letterali XML e le proprietà Axis XML.Visual Basic provides support for LINQ to XMLLINQ to XML through XML literals and XML axis properties. In questo modo è possibile utilizzare una sintassi familiare e pratica per l'utilizzo di XML nel codice Visual Basic.This enables you to use a familiar, convenient syntax for working with XML in your Visual Basic code. I valori letterali XML consentono di includere codice XML direttamente nel codice.XML literals enable you to include XML directly in your code. Le Proprietà Axis XML consentono di accedere a nodi figlio, nodi discendenti e attributi di un valore letterale XML.XML axis properties enable you to access child nodes, descendant nodes, and attributes of an XML literal. Per ulteriori informazioni, vedere Cenni preliminari sui valori letterali XML e accesso a XML in Visual Basic.For more information, see XML Literals Overview and Accessing XML in Visual Basic.

LINQ to XMLLINQ to XMLè un'API di programmazione XML in memoria progettata specificamente per sfruttare i vantaggi LINQ (Language-Integrated Query)Language-Integrated Query (LINQ)di.is an in-memory XML programming API designed specifically to take advantage of LINQ (Language-Integrated Query)Language-Integrated Query (LINQ). Sebbene sia possibile chiamare direttamente LINQLINQ le API, solo Visual Basic consente di dichiarare i valori letterali XML e di accedere direttamente alle proprietà Axis XML.Although you can call the LINQLINQ APIs directly, only Visual Basic enables you to declare XML literals and directly access XML axis properties.

Nota

I valori letterali XML e le proprietà Axis XML non sono supportati nel codice dichiarativo in una pagina ASP.NET.XML literals and XML axis properties are not supported in declarative code in an ASP.NET page. Per usare Visual Basic funzionalità XML, inserire il codice in una pagina code-behind nell'applicazione ASP.NET.To use Visual Basic XML features, put your code in a code-behind page in your ASP.NET application.

Pulsante Riproduci Per le dimostrazioni video correlate, vedere la pagina relativa alla procedura per iniziare a usare LINQ to XML e come creare fogli di calcolo di Excel con LINQ to XML.Play button For related video demonstrations, see How Do I Get Started with LINQ to XML? and How Do I Create Excel Spreadsheets using LINQ to XML?.

Creazione di XMLCreating XML

Esistono due modi per creare alberi XML in Visual Basic.There are two ways to create XML trees in Visual Basic. È possibile dichiarare un valore letterale XML direttamente nel codice oppure è possibile usare LINQLINQ le API per creare l'albero.You can declare an XML literal directly in code, or you can use the LINQLINQ APIs to create the tree. Entrambi i processi consentono al codice di riflettere la struttura finale dell'albero XML.Both processes enable the code to reflect the final structure of the XML tree. Nell'esempio di codice seguente, ad esempio, viene creato un elemento XML:For example, the following code example creates an XML element:

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 codice XML in Visual Basic.For more information, see Creating XML in Visual Basic.

Accesso ed esplorazione di XMLAccessing and Navigating XML

Visual Basic fornisce proprietà Axis XML per l'accesso e l'esplorazione di strutture XML.Visual Basic provides XML axis properties for accessing and navigating XML structures. Queste proprietà consentono di accedere a elementi e attributi XML specificando i nomi degli elementi figlio XML.These properties enable you to access XML elements and attributes by specifying the XML child element names. In alternativa, è possibile chiamare in modo esplicito i metodi per lo spostamento e l' LINQLINQ individuazione di elementi e attributi.Alternatively, you can explicitly call the LINQLINQ methods for navigating and locating elements and attributes. Nell'esempio di codice seguente, ad esempio, vengono utilizzate le proprietà Axis XML per fare riferimento agli attributi e agli elementi figlio di un elemento XML.For example, the following code example uses XML axis properties to refer to the attributes and child elements of an XML element. Nell'esempio di codice viene LINQLINQ utilizzata una query per recuperare gli elementi figlio e restituirli come elementi XML, eseguendo in modo efficace una trasformazione.The code example uses a LINQLINQ query to retrieve child elements and output them as XML elements, effectively performing a transform.

' 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.For more information, see Accessing XML in Visual Basic.

Spazi dei nomi XMLXML Namespaces

Visual Basic consente di specificare un alias per uno spazio dei nomi XML globale utilizzando l' Imports istruzione.Visual Basic enables you to specify an alias to a global XML namespace by using the Imports statement. Nell'esempio seguente viene illustrato come utilizzare l' Imports istruzione per importare uno spazio dei nomi XML:The following example shows how to use the Imports statement to import an XML namespace:

Imports <xmlns:ns="http://someNamespace">

È possibile utilizzare un alias dello spazio dei nomi XML quando si accede alle proprietà Axis XML e si dichiarano valori letterali XML per documenti ed elementi XML.You can use an XML namespace alias when you access XML axis properties and declare XML literals for XML documents and elements.

È possibile recuperare un XNamespace oggetto per un prefisso dello spazio dei nomi specifico usando l' operatore GetXmlNamespace.You can retrieve an XNamespace object for a particular namespace prefix by using the GetXmlNamespace Operator.

Per altre informazioni, vedere istruzione Imports (spazio dei nomi XML).For more information, see Imports Statement (XML Namespace).

Utilizzo di spazi dei nomi XML nei valori letterali XMLUsing XML Namespaces in XML Literals

Nell'esempio seguente viene illustrato come creare un XElement oggetto che utilizza lo spazio dei nsnomi globale:The following example shows how to create an XElement object that uses the global namespace 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 i valori letterali XML che contengono alias dello spazio dei nomi XML in codice equivalente che utilizza la notazione XML per l'utilizzo di spazi dei xmlns nomi XML, con l'attributo.The Visual Basic compiler translates XML literals that contain XML namespace aliases into equivalent code that uses the XML notation for using XML namespaces, with the xmlns attribute. Quando viene compilato, il codice nell'esempio della sezione precedente produce essenzialmente lo stesso codice eseguibile dell'esempio seguente:When compiled, the code in the previous section's example produces essentially the same executable code as the following example:

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 in Proprietà Axis XMLUsing XML Namespaces in XML Axis Properties

Gli spazi dei nomi XML dichiarati in valori letterali XML non sono disponibili per l'utilizzo nelle proprietà Axis XML.XML namespaces declared in XML literals are not available for use in XML axis properties. È tuttavia possibile utilizzare gli spazi dei nomi globali con le proprietà dell'asse XML.However, global namespaces can be used with the XML axis properties. Usare i due punti per separare il prefisso dello spazio dei nomi XML dal nome dell'elemento locale.Use a colon to separate the XML namespace prefix from the local element name. Di seguito è riportato un esempio:Following is an example:

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

Vedere ancheSee also