Autor Beitrag
AeroX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68



BeitragVerfasst: Di 04.03.08 20:18 
hallo,
ich möchte elemente in meine xml-datei schrebien!

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
<?xml version="1.0" encoding="utf-8"?>
<Termine>
  <Termin id="08.05.2008">
    <child time="12:00">Das ist der erste Termin!</child>
  </Termin>
</Termine>


jetzt möchte ein element namens child hinzufügen, mit id!

ich habe schon bei google geguckt, jedoch habe ich nicht gescheites gefunden.

bitte helft mir!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 04.03.08 20:23 
Wenn ich mir Deine Thread so ansehe: Hast Du mal dran gedacht, die XML-Dateien als Klassen abzubilden und dann mit dem XmlSerializer zu arbeiten?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
AeroX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68



BeitragVerfasst: Di 04.03.08 21:27 
ja, aber wie kann ich das mit der id machen?
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 05.03.08 18:56 
Du erstellst eine Klasse Termin mit einer Property Id und fügst noch ein XmlAttributeAttribute (^^) hinzu. Alles andere macht der Serializer.
Doku => "XML serialization"/"XML-Serialisierung"
AeroX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68



BeitragVerfasst: Do 06.03.08 15:25 
Ich weiß nich, ob ich zu blöd dazu bin,
aber ich suche jetzt seit 3 stunden
nach einem kleinen Beispiel,
jedoch finde ich nur welche die mindestens eine Seite lang sind.

Könntet ihr mir vl ein "kleines" Beispiel geben?
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: Fr 07.03.08 07:48 
user profile iconAeroX hat folgendes geschrieben:
Könntet ihr mir vl ein "kleines" Beispiel geben?
Aus den Fingern gesaugt...
Schaue in der Doku die einzelnen Attribute an dort findest du detailiert was sie bedeuten.
Das hier sollte exakt deine Datei generieren:

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
[XmlRoot("Termine")]
public class TerminDatei
{
  readonly List<Termin> termine = new List<Termin>();

  [XmlElement("Termin")]
  public List<Termin> Termine
  {
    get { return termine; }
  }
}

public sealed class Termin
{
  DateTime id;

  [XmlAttribute("id")]
  public DateTime Id
  {
    get { return id; }
    set { id = value; }
  }

  readonly List<Child> children = new List<Child>();

  [XmlElement("child")]
  public List<Child> Children
  {
    get { return children; }
  }
}
public sealed class Child
{
  DateTime time;

  [XmlAttribute("time")]
  public DateTime Time
  {
    get { return time; }
    set { time = value; }
  }
}
AeroX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 68



BeitragVerfasst: Do 13.03.08 15:37 
tut mir leid, dass ich nich zurückgeschrieben habe,
ich hatte es vorrübergehend anders gemacht.

hier mein quellcode:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    [XmlRoot("Termine")]
    public class TerminDatei
    {
        readonly List<Termin> termine = new List<Termin>();

        [XmlElement("Termin")]
        public List<Termin> Termine
        {
            get { return termine; }
        }
    }

    public sealed class Termin
    {
        DateTime id;

        [XmlAttribute("id")]
        public DateTime Id
        {
            get { return id; }
            set { id = value; }
        }

        readonly List<Child> children = new List<Child>();

        [XmlElement("child")]
        public List<Child> Children
        {
            get { return children; }
        }
    }
    public sealed class Child
    {
        DateTime time;

        [XmlAttribute("time")]
        public DateTime Time
        {
            get { return time; }
            set { time = value; }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            TerminDatei uinfo = new TerminDatei();
            XmlSerializer serializer = new XmlSerializer(typeof(TerminDatei));
            StreamWriter writer = File.CreateText("test.xml");
            serializer.Serialize(writer, uinfo);
            writer.Close();

            // Zum direkten Anschauen
            StreamReader SR;
            SR = File.OpenText("test.xml");
            string S;
            while ((S = SR.ReadLine()) != null)
            {
                Console.WriteLine(S);
            }
            Console.Read();
        }
    }
}


was habe ich falsch gemacht?

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
AxxL
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mi 28.05.08 17:39 
Für den Content deines Child nimm das Attribut XMLText(). In der Klasse Child also:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
private string content;
[XmlText()]
public string Content
{
   get { return this.content; }
   set{ this.content = value; }
}