Autor Beitrag
bd.cole
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 46

Win XP, Vista
C# (VS 2005)
BeitragVerfasst: Mi 19.09.07 10:10 
Hallo habe schonmal eine Klasse geschrieben mit der ich XML abspeichere, bin aber noch nicht so gut darin. Meine Klasse sah so aus:
ausblenden 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:
public class VerbindungenXML  
        {     
            verbindung _verbindung = new verbindung();  
                public verbindung Verbindung  
                {  
                    get {return _verbindung;}  
                    set {_verbindung = value; }  
                }  
            public VerbindungenXML(){}  
        }  
        public class verbindung  
        {  
            string startpoint = String.Empty;  
            string endpoint = String.Empty;  
            public string StartPoint  
            {  
                get {return startpoint;}  
                set { startpoint = value;}  
            }  
            public string EndPoint  
            {  
                get {return endpoint;}  
                set { endpoint = value;}  
            }  
            public verbindung(){}  
        }


Jetzt muss ich eine XML Datei schreiben die so aussieht:
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
<?xml version="1.0" encoding="UTF-8" ?> 
<!-- 
-->

- <LIBRARY>
 - <ENTITY name="PlanetErde">
     <LAND id="Deutschland" /> 
   - <ENTITY name="Stefan">
       <IDENTITY id="Stf" /> 
       <STADT id="Hamburg" /> 
       <ADRESS type="normal" strasse="Blumenweg" hausrn="55" briefkasten="kasten" /> 
     </ENTITY>
   - <ENTITY name="paul">
       <IDENTITY id="pal" /> 
       <STADT id="Berlin" /> 
       <ADRESS type="normal" strasse="Baumgarten" hausnr="25" briefkasten="normal" /> 
     </ENTITY>
  </ENTITY>
</LIBRARY>

Wie stell ich das jetzt an, kann mir jemand helfen? Also es sollte wieder mit einer solchen Klasse gelöste werden. Thx
Mfg Cole
bd.cole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 46

Win XP, Vista
C# (VS 2005)
BeitragVerfasst: Mi 19.09.07 11:11 
Hallo bin schon ein bisschen weiter gekommen. Bis jetzt hab ich:
ausblenden 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:
[XmlRoot]
        public class LIBRARY
        {
            public LIBRARY()
            {
                ENTITY = new List<ENTITY>();
            }

            public List<ENTITY> ENTITY;

            [XmlAttribute]
            public string name;
        }
        public class ENTITY
        {

            public ENTITY(string name)
            {
                Name = name;
            }
            public ENTITY() { }
            [XmlAttribute]
            public string Name;
        }

XML Datei bis jetzt:
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
 <?xml version="1.0" encoding="utf-8" ?> 
- <LIBRARY xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  - <ENTITY>
    - <ENTITY Name="00">

      </ENTITY>
    - <ENTITY Name="test">
      </ENTITY>
    </ENTITY>
  </LIBRARY>


Aber weiß noch nicht wie ich bei dem ersten ENTITY jetzt da noch das name hin bekomme und dann vorallem die weiteren unterpunkte wie Land id usw
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 19.09.07 18:30 
Lasse dir doch einmal von XSD.exe den Code erzeugen. Ob er hässlich genug ist oder du doch lieber deinen eigenen schreibst, kannst du danach immer noch entscheiden, du hast aber auf jeden Fall eine funktionierende Vorlage (die mit einem guten Schema sogar gar nicht ganz so hässlich wäre).
bd.cole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 46

Win XP, Vista
C# (VS 2005)
BeitragVerfasst: Do 20.09.07 11:18 
Hi ich hab schon das meiste geschafft, mal einen Teil aus meinem Code
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:
public class LIBRARY
        {
            [XmlArray]
            public List<ENTITY> ENTITY;
            public LIBRARY()
            {
                ENTITY = new List<ENTITY>();
            }
        }
        public class ENTITY
        {
            
            public ENTITY(string Name)
            {
                name = Name;
            }
            public ENTITY() { }
            
            Identity identity = new Identity();
            public Identity IDENTITY
            {
                get { return identity; }
                set { identity = value; }
            }
            Stadt stadt= new Stadt();
            public Geometry Stadt
            {
                get { return stadt; }
                set { stadt= value; }
            }
       }
       ......

Jetzt sieht die XML dann ca so aus:
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
- <LIBRARY>  
 - <ENTITY>    ***
   - <ENTITY name="Stefan">  
       <IDENTITY id="Stf" />   
       <STADT id="Hamburg" />   
     </ENTITY>  
   - <ENTITY name="paul">  
       <IDENTITY id="pal" />   
       <STADT id="Berlin" />   
     </ENTITY>  
  </ENTITY>  
</LIBRARY>

Jetzt hab ich noch ein Problem wie bekomm ich bei dem ersten ENTITY (Zeile mit *** makiert) noch so ein Attribute hin, dass es auch so aussieht: <ENTITY name= "blub">
Bekomm das nicht hin, einer eine Idee? Hab ich nen falschen Ansatz?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 29.09.07 16:29 
Schau Dir dazu mal das Attribut XmlAttributeAttribute (ja, zweimal "Attribute") an.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".