>Salve a tutti,
Ciao
>qualcuno ha delle idee??
prova l'esempio qui di seguito, è una semplice console app:
public class Campo
{
public string id { get; set; }
public string value { get; set; }
}
public class Field
{
public string id { get; set; }
public List<Campo> campi { get; set; }
}
class Program
{
static void Main(string[] args)
{
// xml di esempio
string xmlString =
@"<?xml version='1.0' encoding='UTF-8'?>
<root>
<field id='1'>
<campo id='1'>1_test_1</campo>
<campo id='2'>2_test_1</campo>
</field>
<field id='2'>
<campo id='1'>1_test_2</campo>
<campo id='2'>2_test_2</campo>
</field>
</root>";
Field field;
// creo il container vuoto
List<Field> fields = new List<Field>();
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(xmlString);
if (xmldoc.DocumentElement != null)
{
// ricavo la lista dei nodi field
XmlNodeList xmlFields = xmldoc.GetElementsByTagName("field");
foreach (XmlNode f in xmlFields)
{
// creo un nuovo field
field = new Field();
if (f.Attributes != null) field.id = f.Attributes["id"].Value;
// creo la base per aggiungere i campi contenuti
field.campi = new List<Campo>();
// per ognuno di essi ricavo la lista dei nodi campo
XmlNodeList xmlCampi = f.SelectNodes("campo");
if (xmlCampi != null)
foreach (XmlNode c in xmlCampi)
{
// aggiungo gli item al nodo field
Campo campo = new Campo();
if (c.Attributes != null) campo.id = c.Attributes["id"].Value;
campo.value = c.InnerText;
field.campi.Add(campo);
}
// a questo punto aggiungo al container
fields.Add(field);
}
}
foreach (var f in fields)
{
Console.WriteLine("field id={0}, count campi={1}", f.id, f.campi.Count);
foreach (var c in f.campi)
{
Console.WriteLine("campo id={0}, valore={1}", c.id, c.value);
}
}
Console.ReadLine();
}
}
>grazie
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi