Witam. Potrzebuje pomocy. Wie ktoś może jak zapisać tablice dwuwymiarową do pliku xml?
0
0
Ale masz problem z samą serializacją xml czy może nie masz pomysłu jak powinna wyglądać struktura xml? Czy może nie masz pomysłu jak sama struktura w c# powinna wyglądać? Czy może coś jeszcze innego?
0
Mam takie coś:
class Ciecia
{
public string I;
public double S;
public double Z;
public Ciecia(string i, double s, double z)
{
I = i;
S = s;
Z = z;
}
}
private void button2_Click(object sender, EventArgs e)
{
List<Ciecia> listaCiec = new List<Ciecia>();
for (int i = 1; i <= zmienna1; i++)
{
listaCiec.Add(new Ciecia("I"+i.ToString(), 2, 3));
}
XDocument xml = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("Ciecia"),
new XElement("tabela",
from ciecia in listaCiec
orderby ciecia.S, ciecia.Z
select new XElement("ciecie",
new XAttribute("I", ciecia.I),
new XElement("S", ciecia.S),
new XElement("Z", ciecia.Z)
)
)
);
xml.Save("/Osoby.xml");
}
I wychodzi mi takie coś.
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<!--Ciecia-->
-<tabela>
-<ciecie I="I1">
<S>2</S>
<Z>3</Z>
</ciecie>
-<ciecie I="I2">
<S>2</S>
<Z>3</Z>
</ciecie>
-<ciecie I="I3">
<S>2</S>
<Z>3</Z>
</ciecie>
-<ciecie I="I4">
<S>2</S>
<Z>3</Z>
</ciecie>
</tabela>
A chciałby aby w cieciu I1, I2 .... było S1, S2, S3 itd.
0
Ale w kodzie nie masz nic o S1..S3.
internal class Program
{
public static string SerializeObject<T>(T toSerialize)
{
var xmlSerializer = new XmlSerializer(typeof(T));
using (var textWriter = new StringWriter())
{
xmlSerializer.Serialize(textWriter, toSerialize);
return textWriter.ToString();
}
}
private static void Main(string[] args)
{
var table = new Table();
table.Ciecia.Add(new Ciecie {A = "A1", S1 = 1, S2 = 2, S3 = 3});
table.Ciecia.Add(new Ciecie {A = "A2", S1 = 4, S2 = 5, S3 = 6});
table.Ciecia.Add(new Ciecie {A = "A3", S1 = 0, S2 = 1, S3 = 0});
Console.WriteLine(SerializeObject(table));
}
}
[XmlRoot("table")]
public class Table
{
public Table()
{
Ciecia = new List<Ciecie>();
}
[XmlElement("Ciecie")]
public List<Ciecie> Ciecia { get; set; }
}
public class Ciecie
{
[XmlAttribute("name")]
public string A { get; set; }
public int S1 { get; set; }
public int S2 { get; set; }
public int S3 { get; set; }
}
<?xml version="1.0" encoding="utf-16"?>
<table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Ciecie name="A1">
<S1>1</S1>
<S2>2</S2>
<S3>3</S3>
</Ciecie>
<Ciecie name="A2">
<S1>4</S1>
<S2>5</S2>
<S3>6</S3>
</Ciecie>
<Ciecie name="A3">
<S1>0</S1>
<S2>1</S2>
<S3>0</S3>
</Ciecie>
</table>