Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

NIB: scrittura di attributi

I metodi WriteAttributeString, WriteStartAttribute e WriteAttributes sono appositamente progettati per la creazione di attributi. Questi metodi consentono di scrivere attributi in nodi elemento. È possibile utilizzare i metodi per la scrittura di attributi anche per creare dichiarazioni dello spazio dei nomi in un elemento. Per ulteriori informazioni, vedere NIB: gestione dello spazio dei nomi in XmlWriter.

Il metodo WriteAttributeString rappresenta il modo più semplice per scrivere un attributo. Viene utilizzato per scrivere un intero nodo attributo, incluso un valore di stringa. Nel codice seguente viene aggiunto un attributo (supplierID) e un valore (A23-1) a un elemento XML (Product):


XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(Console.Out, settings))
{
    writer.WriteStartElement("Product");
    writer.WriteAttributeString("supplierID", "A23-1");
    writer.WriteElementString("ProductID", "12345");
    writer.WriteEndElement();
}


Il codice precedente scrive nella console quanto segue:

<Product supplierID="A23-1">
  <ProductID>12345</ProductID>
</Product>

Il metodo WriteStartAttribute è una versione più avanzata del metodo WriteAttributeString. Consente di scrivere il valore dell'attributo usando più chiamate al metodo. Ad esempio, è possibile utilizzare WriteValue per scrivere un valore tipizzato.

L'attributo viene chiuso mediante una chiamata al metodo WriteEndAttribute.

Nel codice seguente, hireDate è un oggetto DateTime che contiene la data di assunzione di un dipendente. Il codice scrive un attributo relativo alla data di revisione contenente il valore calcolato della data di revisione di 6 mesi del dipendente.


DateTime hireDate = new DateTime(2008, 5, 20);
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(Console.Out, settings))
{
    writer.WriteStartElement("Employee");
    writer.WriteStartAttribute("review-date");
    writer.WriteValue(hireDate.AddMonths(6));
    writer.WriteEndAttribute();
    writer.WriteElementString("EmployeeID", "12345");
    writer.WriteEndElement();
}


Il codice precedente scrive nella console quanto segue:

<Employee review-date="2008-11-20T00:00:00">
  <EmployeeID>12345</EmployeeID>
</Employee>

Il metodo WriteAttributes consente di copiare tutti gli attributi rilevati nella posizione corrente dell'oggetto XmlReader fornito. Il comportamento del metodo WriteAttributes dipende dal tipo di nodo su cui è attualmente posizionato il lettore.

Nella tabella seguente vengono descritti i risultati della chiamata al metodo WriteAttributes per ciascun tipo di nodo. Se il lettore è posizionato su un tipo di nodo che non è elencato nella tabella seguente, il metodo WriteAttributes non esegue alcuna operazione.

Tipo di nodo

Comportamento di WriteAttributes

Attribute

Scrive l'attributo corrente, quindi gli attributi rimanenti fino al tag di chiusura dell'elemento.

Element

Scrive tutti gli attributi contenuti nell'elemento.

Dichiarazione XML

Scrive tutti gli attributi nella dichiarazione.

Ad esempio, nel codice seguente vengono copiati nel writer tutti gli attributi rilevati nella posizione corrente del lettore.


XmlReader reader = XmlReader.Create("book.xml");
reader.ReadToDescendant("book");
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(Console.Out, settings))
{

    writer.WriteStartElement("root");
    writer.WriteAttributes(reader, true);
    writer.WriteEndElement();

}


Il codice utilizza il file XML seguente (book.xml):

<?xml version="1.0" ?>
<book genre="autobiography" 
      publicationdate="1981" 
      ISBN="1-861003-11-0">Book Title</book>

Il codice precedente scrive nella console quanto segue:

<root genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0" />
Mostra: