LinqToXml: creazione di una struttura XML

Ho dei dati all’interno di una variabile:

Dictionary<int, Dictionary<string, string>> xmlMassiveData = new Dictionary<int, Dictionary<string, string>>();

 

Nella quale ho un insieme di dati che mi serviranno per creare un Batch per SharePoint.
Ma poco cambia per la creazione di un file XML.

Ecco cosa faremo:

XElement query = new XElement("Batch",
                              new XAttribute("OnError", "Continue"),
                              new XAttribute("PreCalc", "TRUE"),
                              new XAttribute("ListVersion", "0"),
                              from method in xmlMassiveData
                              select new XElement("Method",
                                                  new XAttribute("ID", (method.Key + 1)),
                                                  new XAttribute("Cmd", "New"),
                                                  from field in method.Value
                                                  select new XElement("Field", field.Value,
                                                                      new XAttribute("Name", field.Key))));

query.Save("nomeFile.xml");

 

Il file risultante sarà:

<?xml version="1.0" encoding="utf-8"?>
<Batch OnError="Continue" PreCalc="TRUE" ListVersion="0">
  <Method ID="1" Cmd="New">
    <Field Name="Codice">0000020100</Field>
    <Field Name="Descrizione">TORINO</Field>
    <Field Name="CAB">010009</Field>
    <Field Name="Identificativo">L219</Field>
    <Field Name="Provincia">TO</Field>
  </Method>
  <Method ID="2" Cmd="New">
    <Field Name="Codice">0000020120</Field>
    <Field Name="Descrizione">AOSTA</Field>
    <Field Name="CAB">012005</Field>
    <Field Name="Identificativo">A326</Field>
    <Field Name="Provincia">AO</Field>
  </Method>
</Batch>

 

Divertitevi! :)

Tags: