Autor Beitrag
Vegeto
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Di 05.04.16 10:28 
Hallo,

ich weiß leider nicht ob der Name falsch gewählt oder ganz falsch ist! :(

Also ich möchte neben meiner Anwendung eine XML Datei haben in diese XML Datei stehen Option spezifische Daten. Diese können dann in der XML Datei erweitert oder gekürzt werden ohne, dass in der Anwendung was geschieht. Ich zeige euch mal ein Beispiel wie ich mir das vorstelle.

!!! Das ist alles nur ein Beispiel, ich weiß nicht mal ob eine XML so aufgebaut werden kann !!!
Ich habe eine XML, Name TelefonNummer.
Hier sind jetzt diverse Daten enthalten
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?xml version="1.0" encoding="utf-8"?>
<TelefonNummer>
  <Kunden>
    <Kunde name="Ich AG">
      <Kontakt name="Max Mustermann" nummer="0123456789"></Kontakt>
      <Kontakt name="Theo Robot" nummer="+490123456789"></Kontakt>
    </Kunde>
    <Kunde name="Zweite GmbH">
      <Kontakt name="Hauke Blatt" nummer="9876543210"></Kontakt>
    </Kunde>
  </Kunden>
</TelefonNummer>


Nun möchte ich in meiner Anwendung Über Comboboxen zunächst alle Kunden sehen und anschließende zu jedem Kunden die Kontakte?

Leider fehlt mir in dieser insicht das know how um soetwas zu realisieren kann mir dort jemand Helfen?

LG

EDIT: Habe die Lösung gefunden auf: www.tutorials.de/thr...nen-auslesen.340647/
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Di 05.04.16 11:32 
Hallo,

ich würde dir empfehlen, dass modernere "linq to XML" zu verwenden. Das macht es dir in der Regel nicht nur leichter neue Strukturen anzulegen, es ist insbesondere viel mächtiger wenn es darum geht die Daten wieder aus deinem XML Dokument zu holen.

So könntest du z. B. um bei deinem Beispiel zu bleiben alle deine Kontakte Alphabetisch sortiert ausgeben in dem du etwa so etwas Schreibst:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
            XDocument XML = XDocument.Load("MyFileName");
            var Kontakte = from Element in XML.Root.Descendants("Kontakt")
                           where Element.Attribute("name") != null
                           orderby Element.Attribute("name").Value
                           select Element.Attribute("name").Value;
            foreach (string Kontakname in Kontakte)
            {
                Console.WriteLine(Kontakname);
            }


Klar sollte man noch ein zwei Sachen beachten, es soll dir aber demonstrieren, was du gewinnen kannst.

Vielleicht ist das hier ein guter Einstieg für dich in das Thema: openbook.rheinwerk-v...69-94ff-a84b9ca1839e
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 05.04.16 15:56 
Wenn du den XmlSerializer verwendest und du die Daten als Attribute hinterlegen möchtest und nicht als Tag dann kannst du die XMLAttribute[Attribute] Attribut Klasse verwenden. Beispiel in der verlinkten MSDN.

Edit: @Christian dies ist kein stottern die Klasse heißt einfach nur *mist*e. Bitte nicht korrigieren ;)

Für diesen Beitrag haben gedankt: Christian S.