Visualizzazione post con etichetta XML. Mostra tutti i post
Visualizzazione post con etichetta XML. Mostra tutti i post

domenica 5 aprile 2026

C# salvare i dati di un DataTable in un file XML

Tramite il metodo WriteXML, della classe DataTable, possiamo salvare i dati presenti nel Datatable in un file XML.
Di seguito il frammento di codice di tale utilizzo.


C#

DataTable dati = new DataTable();

dati = getDati();

dati.WriteXml("C:\\Dati.xml");


sabato 4 ottobre 2025

C# trasformare una lista di classe in un file XML

Nel caso che abbiamo la necessità di trasformare una lista di oggetti, classi, in un file XML, tramite la tecnica della serializzazione possiamo trasformare la lista in un file XML.

Nel caso che abbiamo una lista di entità di Entity Framework e desideriamo trasformare il risultato di questa lista in un file XML, tramite la classe XmlSerialize possiamo ottenere tale risultato.

Di seguito un frammento di codice nel linguaggio di programmazione C#.

Aggiungiamo lo spazio dei nomi per la gestione dei file XML e della Serializzazione.
Di seguito tale dichiarazioni.


C#
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;



Supponiamo di avere la seguente classe, che sarà utilizzata come lista di oggetti e contenitore di dati

C#
public class Persona
{
    public int Id { get; set; }
    public string Nome { get; set; }
    public string Cognome { get; set; }
}



Di seguito l'esempio di codice per creare la lista di oggetti della classe dichiara nell'esempio precedente.

C#
        // Crea una lista di entità
        List<Persona> persone = new List<Persona>
        {
            new Persona { Id = 1, Nome = "Mario", Cognome = "Rossi" },
            new Persona { Id = 2, Nome = "Luigi", Cognome = "Verdi" },
            new Persona { Id = 3, Nome = "Giovanni", Cognome = "Bianchi" }
        };





Di seguito il frammento di codice per trasformare la lista con i dati in un file XML.

C#
// Crea un oggetto XmlSerializer
XmlSerializer serializer = new XmlSerializer(typeof(List<Persona>));

// Crea un file XML
 using (StreamWriter writer = new StreamWriter("persone.xml"))
{
   // Serializza la lista di entità nel file XML
   serializer.Serialize(writer, persone);
}




Il risultato sarà:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfPersona xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Persona>
    <Id>1</Id>
    <Nome>Mario</Nome>
    <Cognome>Rossi</Cognome>
  </Persona>
  <Persona>
    <Id>2</Id>
    <Nome)Luigi</Nome>
    <Cognome>Verdi</Cognome>
  </Persona>
  <Persona>
    <Id>3</Id>
    <Nome>Giovanni</Nome>
    <Cognome>Bianchi</Cognome>
  </Persona>
</ArrayOfPersona>

venerdì 25 febbraio 2022

C# Linq to XML xelement.load da string

Nel caso che si sta utilizzando la tecnologia Linq To XML e si vuole caricare un xml da una string, possiamo utilizzare la classe StringReader per valorizzare un un oggetto da string.

Qui di seguito un frammento di codice di esempio.

var Elementi = from nodi in System.Xml.Linq.XElement.Load(new StringReader("<dati><nodo>valore</nodo><nodo>valore 2</nodo></dati>")).Elements("nodo")
                            select nodi;

martedì 28 gennaio 2020

C# Aggiungere un file XSLT ad un oggetto di tipo xmldocument

Il frammento di codice qui di seguito illustra una tecnica di come applicare ad un oggetto di tipo XMLDocument un file XSLT


XmlDataDocument ritornaValore = null;
 XmlDocument xmlDocument = new XmlDocument();

xmlDocument = GetDati();

 using (XmlWriter xw = xmlDocument .CreateNavigator().AppendChild())
                    {
                        XslCompiledTransform generaXsl = new XslCompiledTransform();
                        generaXsl .Load(HttpContext.Current.Server.MapPath("~/_css/MioFile.xslt"));
                        generaXsl .Transform(ritornaValore , null, xw);
                        xw.Close();
                    }


giovedì 11 luglio 2019

C# caricare in una listbox i valori di un file xml

Qui di seguito, si riporta un frammento di codice che carica in un controllo Listbox per ambiente Windows Application i dati presenti in un file XML.
Qui di seguito il file XML.



<?xml version="1.0" encoding="utf-8" ?>
<elenco>
  <nodo1>
   
  </nodo1>
  <nodo2>
   
   
  </nodo2>
  <nodo3>
   
   
  </nodo3>
  <nodo4>
   
   
  </nodo4>
</elenco>


Qui di seguito il caricamento dei dati nel controllo Listbox.

 if (File.Exists(Environment.CurrentDirectory + "\\MioFile.xml"))
            {
                XDocument datiXml = XDocument.Load(Environment.CurrentDirectory + "\\MioFile.xml");
                foreach (var nodo in datiXml.Elements("elenco").Elements())
                {
                    if (!string.IsNullOrEmpty(nodo.Value.ToString()))
                        ListaBox1.Items.Add(nodo.Value);
                }
            }
            else
            {
                MessageBox.Show("File xml non presente, verificare la correttezza dei dati.");
            }

venerdì 8 marzo 2019

C# Deserialize file xml to class

Il frammento di codice qui di seguito illustra una tecnica di come trasformare un file XML in un oggetto (classe) con i valori




 MiaClasse oggettoDaValorizzare = new MiaClasse ();
 XmlSerializer serializer = new XmlSerializer(typeof(MiaClasse ));
 StreamReader reader = new StreamReader(Environment.CurrentDirectory + "\\NomeFile.xml");
 oggettoDaValorizzare  = MiaClasse )serializer .Deserialize(reader );
 reader .Close();

lunedì 17 dicembre 2018

Linq to xml aggiornare un nodo

Il frammento di codice qui di seguito illustra una tecnica di come leggere il valore di un nodo e poi modificarlo con altro dato, nei file XML utilizzando Linq to Xml con il linguaggio C#

Qui di seguito il file XML (Dati.xml).

<?xml version="1.0" encoding="utf-8" ?>
<dati>
  <campoA>2</campoA>
  <CampoB>2</CampoB>
  <campoc>2</campoc>
 
</dati>


Qui di seguito il codice.

            XDocument datiXml =   XDocument.Load(Environment.CurrentDirectory+"\\Dati.xml");
            var campoA = datiXml.Elements("dati").Elements("campoA").Single();
            campoA.Value = "10";
            var CampoB = datiXml.Elements("dati").Elements("CampoB").Single();
            CampoB.Value = "10";
            var campoc = datiXml.Elements("dati").Elements("campoc").Single();
            campoc.Value = "10";
            datiXml.Save(Environment.CurrentDirectory + "\\Dati.xml");



venerdì 21 dicembre 2012

C# XMLNode eliminare un nodo

Il seguente frammento di codice illustra una tecnica di come eliminare un nodo tramite la classe XMLNode ed il linguaggio C#.

XmlNodeList nodes = lXmlNode.SelectNodes("//Nodo/NodoA");


for (int i = nodes.Count - 1; i >= 0; i--)

{

nodes[i].ParentNode.RemoveChild(nodes[i]);

}

giovedì 3 settembre 2009

Trovare dei valori nei file xml tramite VB.Net

In questo http://www.dotnetromacesta.org/common/trucchi/xml/Manipolare_file_XML.aspx esempio di codice, viene illustrato come ricercare dei valori all'interno di un file xml, tramite il linguaggio di programmazione VB.Net

venerdì 12 settembre 2008

Eliminare un nodo di un file xml tramite C#

Il frammento di codice, qui di seguito, permette la cancellazione di un nodo, in
un file xml, tramite il linguaggio xml.




public void EliminaNodoXml(int IntPosizione, string StrNomeFile,
string
StrNodoDaEliminare, string StrRadice)

{

try
{


// oggetto per il file xml


XmlDocument Xmlfile
= new XmlDocument();


// carico il file


Xmlfile.Load((StrNomeFile +
".xml"));


// lista di nodi


XmlNodeList xmlNodi = Xmlfile.GetElementsByTagName(StrNodoDaEliminare);


// utilizzo il metodo per eliminare tale valore


Xmlfile.GetElementsByTagName(StrRadice)[
0].RemoveChild(xmlNodi[IntPosizione]);


Xmlfile.Save((StrNomeFile + "2.xml"));


System.IO.File.Copy((StrNomeFile +
"2.xml"), (StrNomeFile + ".xml"), true);

}

catch (Exception ex)

{

MsgBox(ex.Message)
;

}

}





Di seguito si riporta il codice per eseguire tale funzione



EliminaNodoXml(lstargomenti.SelectedIndex, "opzioni", "argomento",
"lista");






Inserire un nodo in un file xml tramite C#

Il frammento di codice, qui di seguito, illustra una tecnica di come inserire un nuovo nodo, in un file xml.


public void InserisciNodoXml(string StrNuovoValore, string StrNomeFile, string StrNodo, string StrRadice)

{

try
{


// file documento


XmlDocument XmlFileDoc
= new XmlDocument();


XmlFileDoc.Load((StrNomeFile +
".xml"));


// creo un nodo lista


XmlNodeList xmlNodi
= XmlFileDoc.GetElementsByTagName(StrRadice);


// creo il nodo o meglio l'elemento


XmlElement xmlelemento
;


xmlelemento
= XmlFileDoc.CreateElement(StrNodo);


// testo del nodo


XmlText XmlTesto
= XmlFileDoc.CreateTextNode(StrNuovoValore);


// aggiungo al nodo il testo


xmlelemento.AppendChild(XmlTesto)
;


// agguingo il nuovo elemento


xmlNodi[
0].AppendChild(xmlelemento);


XmlFileDoc.Save((StrNomeFile + "2.xml"));


// rinomino il file xml


System.IO.File.Copy((StrNomeFile +
"2.xml"), (StrNomeFile + ".xml"), true);

}

catch (Exception ex)

{

MsgBox(ex.Message)
;

}

}





// di seguito si riporta un esempio di tale utilizzo dove si passa il valore da inserire il nome del file, il nome del nodo ed il nome della radice
InserisciNodoXml(txtargomento.Text, "opzioni", "argomento", "lista");


mercoledì 10 settembre 2008

Leggere un nodo da un file xml tramite C#



public void LeggiNodoXml(ref XmlNodeList xmlNodo,
string StrNomeFile,
string
StrNodoDaLeggere)
{

try

{

// oggetto
per il file xml

XmlDocument
Xmlfile
= new XmlDocument()
;

// carico
il file

XmlTextReader
XmlLeggi
= new
XmlTextReader(StrNomeFile)
;

XmlLeggi.WhitespaceHandling
= WhitespaceHandling.None
;

Xmlfile.Load(XmlLeggi)
;

// cerco
tutti i nodi da leggere

xmlNodo
= Xmlfile.GetElementsByTagName(StrNodoDaLeggere)
;

XmlLeggi.Close()
;

XmlLeggi
= null;

}

catch
(Exception ex) {

MsgBox(ex.Message)
;

}

// Di seguito si riporta
una fase per testare tale codice, esempio di avvio codice in cui il valore del nodo
viene inserito in una listbox.

Xml.XmlNodeList xmlnodi
;

LeggiNodoXml(xmlnodi,
"opzioni.xml",
"argomento")
;

int
intconta
= 0
;

for
(intconta
= 0
;
(intconta

<
= (xmlnodi.Count -
1))
;
intconta++) {

lstargomenti.Items.Add(xmlnodi[intconta].InnerText())
;

}

}