Compartir a través de


Información general acerca de la clase XAttribute

Los atributos son pares de nombre y valor asociados a un elemento.La clase XAttribute representa los atributos XML.

Información general

Trabajar con atributos en LINQ to XML es similar a trabajar con elementos.Sus constructores son similares.Los métodos que usa para recuperar colecciones de ellos también son similares.Una expresión de consulta LINQ de una colección de atributos se parece mucho a una expresión de consulta LINQ de una colección de elementos.

Se conserva el orden en el que se agregaron los atributos a un elemento.Es decir, cuando procese una iteración en los atributos, los verá en el mismo orden en el que se agregaron.

El constructor XAttribute

El siguiente constructor de la clase XAttribute es el que usará normalmente:

Constructor

Descripción

XAttribute(XName name, object content)

Crea un objeto XAttribute.El argumento name especifica el nombre del atributo; content especifica el contenido del atributo.

Crear un elemento con un atributo

El siguiente código muestra la tarea habitual de crear un elemento que contiene un atributo:

XElement phone = new XElement("Phone",
    new XAttribute("Type", "Home"),
    "555-555-5555");
Console.WriteLine(phone);

Con Visual Basic, puede usar los literales XML:

Dim phone As XElement = <Phone Type="Home">555-555-5555</Phone>
Console.WriteLine(phone)

Este ejemplo genera el siguiente resultado:

<Phone Type="Home">555-555-5555</Phone>

Construcción funcional de los atributos

Puede construir objetos XAttribute de modo similar a la construcción de los objetos XElement, tal como se indica a continuación:

XElement c = new XElement("Customers",
    new XElement("Customer",
        new XElement("Name", "John Doe"),
        new XElement("PhoneNumbers",
            new XElement("Phone",
                new XAttribute("type", "home"),
                "555-555-5555"),
            new XElement("Phone",
                new XAttribute("type", "work"),
                "666-666-6666")
        )
    )
);
Console.WriteLine(c);
Dim c As XElement = _
    <Customers>
        <Customer>
            <Name>John Doe</Name>
            <PhoneNumbers>
                <Phone type="home">555-555-5555</Phone>
                <Phone type="work">666-666-6666</Phone>
            </PhoneNumbers>
        </Customer>
    </Customers>
Console.WriteLine(c)

Este ejemplo genera el siguiente resultado:

<Customers>
  <Customer>
    <Name>John Doe</Name>
    <PhoneNumbers>
      <Phone type="home">555-555-5555</Phone>
      <Phone type="work">666-666-6666</Phone>
    </PhoneNumbers>
  </Customer>
</Customers>

Los atributos no son nodos

Existen algunas diferencias entre los atributos y los elementos.Los objetos XAttribute no son nodos en el árbol XML.Son pares de nombre y valor asociados a un elemento XML.A diferencia de Document Object Model (DOM), esto refleja de manera más precisa la estructura del código XML.Aunque los objetos XAttribute no son realmente nodos en el árbol XML, trabajar con objetos XAttribute es muy similar a trabajar con objetos XElement.

Esta distinción solo resulta de importancia para los desarrolladores que escriban código que trabaje con árboles XML en el nivel de nodo.A muchos desarrolladores no les afecta esta distinción.

Vea también

Conceptos

Información general acerca de la programación de LINQ to XML