Condividi tramite


Cenni preliminari sulla classe XAttribute

Gli attributi sono coppie nome/valore associate a un elemento.La classe XAttribute rappresenta gli attributi XML.

Cenni preliminari

Le modalità di utilizzo degli attributi in LINQ to XML sono simili a quelle degli elementi.I relativi costruttori sono simili.I metodi utilizzati per recuperare le relative raccolte sono simili.Un'espressione di query LINQ relativa a una raccolta di attributi sembra molto simile a un'espressione di query LINQ relativa a una raccolta di elementi.

L'ordine con cui gli attributi vengono aggiunti a un elemento viene mantenuto.Quando si scorrono gli attributi, questi vengono visualizzati nell'ordine in cui sono stati aggiunti.

Costruttore XAttribute

Il seguente costruttore della classe XAttribute è quello utilizzato più comunemente:

Costruttore

Descrizione

XAttribute(XName name, object content)

Crea un oggetto XAttribute.L'argomento name specifica il nome dell'attributo, mentre content ne specifica il contenuto.

Creazione di un elemento con un attributo

Nel codice seguente è illustrata l'attività comune di creazione di un elemento che contiene un attributo:

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

Con Visual Basic è possibile utilizzare valori letterali XML:

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

L'output ottenuto eseguendo l'esempio è il seguente:

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

Costruzione funzionale di attributi

È possibile costruire oggetti XAttribute in linea con la costruzione di oggetti XElement, come descritto di seguito:

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)

L'output ottenuto eseguendo l'esempio è il seguente:

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

Attributi non nodi

Esistono alcune differenze tra attributi ed elementi.Gli oggetti XAttribute non rappresentano nodi nella struttura ad albero XML,ma sono coppie nome/valore associate a un elemento XML.A differenza del modello DOM (Document Object Model), questa definizione rispecchia maggiormente la struttura del codice XML.Sebbene gli oggetti XAttribute non siano effettivamente nodi della struttura ad albero XML, le modalità di utilizzo degli oggetti XAttribute sono molto simili a quelle degli oggetti XElement.

Questa distinzione è di fondamentale importanza solo per gli sviluppatori che scrivono codice che riguarda le strutture ad albero XML a livello di nodo.Non interessa quindi la maggior parte degli sviluppatori.

Vedere anche

Concetti

Cenni preliminari sulla programmazione con LINQ to XML