Compartir a través de


Cómo recuperar el valor de un atributo (LINQ to XML)

Actualización: November 2007

Este tema muestra cómo obtener el valor de los atributos. Hay dos formas principales: puede convertir un elemento XAttribute al tipo deseado; el operador de conversión explícita convierte el contenido del elemento o del atributo al tipo especificado. Como alternativa, puede usar la propiedad Value. Sin embargo, la conversión suele ser el mejor método. Si convierte el atributo a un tipo que admite valores NULL, resulta más fácil escribir el código al recuperar el valor de un atributo que podría existir o no. Para obtener ejemplos de esta técnica, vea Cómo recuperar el valor de un elemento (LINQ to XML).

Ejemplo

Para recuperar el valor de un atributo, basta con convertir el objeto XAttribute al tipo deseado.

En Visual Basic, puede usar la propiedad del atributo integrado para recuperar el valor de un atributo.

XElement root = new XElement("Root",
                    new XAttribute("Attr", "abcde")
                );
Console.WriteLine(root);
string str = (string)root.Attribute("Attr");
Console.WriteLine(str);
Dim root As XElement = <Root Attr="abcde"/>
Console.WriteLine(root)
Dim str As String = root.@Attr
Console.WriteLine(str)

Este ejemplo genera el siguiente resultado:

<Root Attr="abcde" />
abcde

En Visual Basic, puede usar la propiedad del atributo integrado para establecer el valor de un atributo. Asimismo, si usa la propiedad del atributo integrado para establecer el valor de un atributo que no existe, se creará el atributo.

Dim root As XElement = <Root Att1="content"/>
root.@Att1 = "new content"
root.@Att2 = "new attribute"
Console.WriteLine(root)

Este ejemplo genera el siguiente resultado:

<Root Att1="new content" Att2="new attribute" />

El siguiente ejemplo muestra cómo recuperar el valor de un atributo, en el que el atributo se encuentra en un espacio de nombres. Para obtener más información, vea Trabajar con espacios de nombres XML.

XNamespace aw = "https://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
                    new XAttribute(aw + "Attr", "abcde")
                );
string str = (string)root.Attribute(aw + "Attr");
Console.WriteLine(str);
Imports <xmlns:aw="https://www.adventure-works.com">

Module Module1
    Sub Main()
        Dim root As XElement = <aw:Root aw:Attr="abcde"/>
        Dim str As String = root.@aw:Attr
        Console.WriteLine(str)
    End Sub
End Module

Este ejemplo genera el siguiente resultado:

abcde

Vea también

Conceptos

Ejes LINQ to XML