Uncategorized

Formattazione con il XmlTextWriter

Tutti voi sicuramente già conoscete la classe XmlTextWriter del .NET Framework, classe che consente una rapida e logica scrittura dei file XML.
Data la sua diffusione, vi sarà capitato di usarla e avrete forse notato un problema: una volta scritto il XML e aperto in un editor di testo, tutto il codice XML risulta scritto su una sola riga (ovvero senza ritorni a capo) e senza indentazione.
Bene, questo non è un bug, ma un comportamento che può essere semplicemente modificato.

Infatti, il ritorno a capo e le impostazioni dell’indentazione sono caratteristiche che vengono impostate attraverso alcuni parametri dell’oggetto XmlTextWriter. Nel frammento di codice qui di seguito – tratto dal modulo RSS di xCMS che, tra l’altro, genera anche i feed di questo sito – si può vedere la dichiarazione e l’impostazione delle proprietà.

<blockquote>
<p class="inlinecode">Dim sw As New StringWriter()
Dim writer As New XmlTextWriter(sw)</p>
With writer
.Formatting = Formatting.Indented
.IndentChar = " "
.Indentation = 4
End With

La proprietà Formatting dice all’oggetto se deve effettuare o meno l’indentazione, mentre IndentChar e Indentation sono rispettivamente il carattere da usare come spaziatore (ovviamente lo spazio singolo è la scelta usuale) e il numero di volte che questo carattere deve essere ripetuto.
Diversamente da quello che potrebbe sembrare, la proprietà Formatting.Indented controlla anche il ritorno a capo in maniera implicita: per ottenere un a capo puro, naturalmente si può impostare a 0 il numero dei caratteri per l’indentazione.

Annunci
Standard

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...