Zapis tablicy dwuwymiarowej do pliku xml

0

Witam. Potrzebuje pomocy. Wie ktoś może jak zapisać tablice dwuwymiarową do pliku xml?

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>

1 użytkowników online, w tym zalogowanych: 0, gości: 1