Si possono creare documenti XML all'interno del .NET Framework sfruttando diversi approcci.
E' interessante l'utilizzo della classe XmlTextWriter, che troviamo nel namespace System.Xml e che eredita da XmlWriter.
E' necessario associare uno stream all'oggetto XmlTextWriter appena creato: nel nostro esempio utilizziamo lo stream di risposta, ma si potrebbe scegliere un qualsiasi altro stream.
Il metodo WriteStartElement apre un nuovo tag. Utile quando bisogna aggiungere attributi ad un tag (attraverso WriteAttributeString) o altri tag annidati.
WriteEndElement è la controparte e va richiamato sempre per aggiungere il tag di chiusura.
All'interno del ciclo vengono invece create diverse chiavi, una delle quali attraverso l'uso del metodo WriteRaw aggiunge delle sezioni .
In realtà può essere utilizzato anche per altri scopi, come aggiungere l'intestazione XML con l'encoding, oppure dei commenti all'interno del documento XML.
Infine il metodo WriteElementString può essere sfruttato per aggiungere una chiave con il valore associato.
Segue un esempio:
<%@ Import Namespace="System.Xml"%> <script runat="server" Language="C#"> public void Page_Load() { Response.ContentType = "text/xml"; // creo un nuovo oggetto XmlTextWriter con output // sullo stream dell'oggetto Response XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Encoding.Default); writer.Formatting = Formatting.Indented; // aggiungo l'intestazione XML writer.WriteRaw("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>"); // apro la root writer.WriteStartElement("root"); // aggiungo un attributo writer.WriteAttributeString("attributo","valore"); // apro nuovo tag writer.WriteStartElement("items"); // chiavi interne writer.WriteElementString("chiave", "valore"); writer.WriteElementString("chiave2", "valore2"); // ciclo per inserire nuove chiavi for(int i = 0; i < 15; i++) { writer.WriteStartElement("item"); // chiave interna writer.WriteElementString("numero", i.ToString()); // scrive in modalità raw writer.WriteStartElement("testo"); writer.WriteRaw("<![CDATA[Questo è un test con caratteri <>]]>"); // chiudo tag testo writer.WriteEndElement(); // chiudo tag item writer.WriteEndElement(); } // chiudo tag items writer.WriteEndElement(); // chiudo tag root writer.WriteEndElement(); // scrivo a video e chiudo lo stream writer.Flush(); writer.Close(); } </script>
Per vedere all'opera lo script:
https://www.aspitalia.com/liste/usag/esempi.aspx?ID=507
Per un tutorial su XML si veda:
http://xml.aspitalia.com/
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side
- Visualizzare contenuti Fullscreen con HTML5
- Disabilitare un bottone in una pagina HTML pensando all'accessibilità
- Realizzare siti sicuri con ASP.NET Web Pages
- Focus dei tag input con HTML5
- Disponibile la beta di Silverlight 5
- Ricavare lo spazio occupato su disco dal nostro sito