Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Visual Basic proporciona compatibilidad con LINQ to XML a través de literales XML y propiedades del eje XML. Esto le permite usar una sintaxis familiar y cómoda para trabajar con XML en el código de Visual Basic. Los literales XML permiten incluir XML directamente en el código. Las propiedades del eje XML permiten acceder a nodos secundarios, nodos descendientes y atributos de un literal XML. Para obtener más información, vea Información general sobre literales XML y Acceso a XML en Visual Basic.
LINQ to XML es una API de programación XML en memoria diseñada específicamente para aprovechar las ventajas de Language-Integrated Query (LINQ). Aunque puede llamar directamente a las API de LINQ, solo Visual Basic le permite declarar literales XML y acceder directamente a las propiedades del eje XML.
Nota:
Los literales XML y las propiedades del eje XML no se admiten en código declarativo en una página de ASP.NET. Para usar las características XML de Visual Basic, coloque el código en una página de código subyacente en la aplicación de ASP.NET.
Para ver demostraciones de vídeo relacionadas, vea ¿Cómo puedo empezar a trabajar con LINQ to XML? y ¿Cómo puedo crear hojas de cálculo de Excel con LINQ to XML?.
Creación de XML
Hay dos maneras de crear árboles XML en Visual Basic. Puede declarar un literal XML directamente en el código o puede usar las API de LINQ para crear el árbol. Ambos procesos permiten que el código refleje la estructura final del árbol XML. Por ejemplo, en el ejemplo de código siguiente se crea 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>
Para obtener más información, vea Crear XML en Visual Basic.
Obtener acceso y navegar por XML
Visual Basic proporciona propiedades de eje XML para acceder a estructuras XML y navegar por ellas. Estas propiedades permiten acceder a los elementos y atributos XML especificando los nombres de elementos secundarios XML. Como alternativa, puede llamar explícitamente a los métodos LINQ para navegar y buscar elementos y atributos. Por ejemplo, en el ejemplo de código siguiente se usan propiedades del eje XML para hacer referencia a los atributos y a los elementos secundarios de un elemento XML. En el ejemplo de código se usa una consulta LINQ para recuperar elementos secundarios y generarlos como elementos XML, realizando una transformación de forma eficaz.
' 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
Para obtener más información, vea Obtener acceso a XML en Visual Basic.
Espacios de nombres XML
Visual Basic permite especificar un alias en un espacio de nombres XML global mediante la Imports
instrucción . En el ejemplo siguiente se muestra cómo usar la Imports
instrucción para importar un espacio de nombres XML:
Imports <xmlns:ns="http://someNamespace">
Puede usar un alias de espacio de nombres XML al obtener acceso a las propiedades del eje XML y declarar literales XML para documentos y elementos XML.
Puede recuperar un XNamespace objeto para un prefijo de espacio de nombres determinado mediante el operador GetXmlNamespace.
Para más información, consulte Imports (Instrucción, Espacio de nombres XML).
Usar espacios de nombres XML en literales XML
En el ejemplo siguiente se muestra cómo crear un objeto XElement que use el espacio de nombres global 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)
El compilador de Visual Basic traduce literales XML que contienen alias de espacio de nombres XML en código equivalente que usa la notación XML para usar espacios de nombres XML, con el atributoxmlns
. Cuando se compila, el código del ejemplo de la sección anterior genera básicamente el mismo código ejecutable que el ejemplo siguiente:
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)
Uso de espacios de nombres XML en propiedades del eje XML
Los espacios de nombres XML declarados en literales XML no están disponibles para su uso en las propiedades del eje XML. Sin embargo, los espacios de nombres globales se pueden usar con las propiedades del eje XML. Use dos puntos para separar el prefijo del espacio de nombres XML del nombre del elemento local. El siguiente es un ejemplo:
Console.WriteLine("Contact name is: " & contact1.<ns:name>.Value)