Autor Beitrag
Gooner
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Di 29.06.10 16:02 
Hallo zusammen,

Und zwar habe ich eine xml. Datei, in der die Wörter Spielera01-Spielera18 und
Spielerb01-Spielerb18 jeweils ein paar hundert mal so drin stehen.

Ich würde nun gerne in der GUI mit Hilfe von Textfeldern diese Wörter durch die
wirklichen Namen ersetzen.

Am liebsten wäre es mir, die Namen mit Hilfe einer Checkbox bei gesetztem Haken
zu überschreiben. Nach dem Überschreiben aller Namen würde ich das "neue" xml. File
z.B. mit einem Button so abspeichern.

Hätte vielleicht jemand einen Tipp, wie ich das am besten realisieren könnte und
ist das so überhaupt möglich?

Vielen Dank im Voraus!

Gooner
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Di 29.06.10 16:58 
Hallo,

um Xml Dokumente in .NET verarbeiten zu können gibt es die Klasse XDocument. Für genauere Hinweise bräuchte man die genau Strukutr der Xml.

Generell kannst du natürlich zum Beispiel Links ein ListBox machen in der alle Spieler aufgelistet werden und bei auswählen Rechts eine Textbox anzeigen wo du die Werte ändern kannst.

Das wäre ein recht primitive Oberfläche. Dementsprechend könnte man das Xml wahrscheinlich gleich auch im Editor editieren :D Deshalb ist die letztendliche Umsetzung wohl stark von den Ansprüchen und Verwendungszweck abhängig - von denen wir sofar nichts wissen.

Gruß
gfoidl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 157
Erhaltene Danke: 19

Win XP
C#, Fortran 95 - Visual Studio
BeitragVerfasst: Di 29.06.10 17:03 
Hallo,

siehe auch Wörter in xml. Datei mit Windows Forms ersetzen.

Bitte keine Crossposts.


mfG Gü

_________________
Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!
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 29.06.10 17:05 
user profile icongfoidl hat folgendes geschrieben Zum zitierten Posting springen:
siehe auch Wörter in xml. Datei mit Windows Forms ersetzen.

Bitte keine Crossposts.
Crossposts sind bei uns erlaubt, auf den jeweils anderen Thread zu verweisen wird jedoch erwartet ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Gooner Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Di 29.06.10 18:27 
user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,

um Xml Dokumente in .NET verarbeiten zu können gibt es die Klasse XDocument. Für genauere Hinweise bräuchte man die genau Strukutr der Xml.

Generell kannst du natürlich zum Beispiel Links ein ListBox machen in der alle Spieler aufgelistet werden und bei auswählen Rechts eine Textbox anzeigen wo du die Werte ändern kannst.

Das wäre ein recht primitive Oberfläche. Dementsprechend könnte man das Xml wahrscheinlich gleich auch im Editor editieren :D Deshalb ist die letztendliche Umsetzung wohl stark von den Ansprüchen und Verwendungszweck abhängig - von denen wir sofar nichts wissen.

Gruß


Hallo Daniel,

die Struktur sieht so aus:

ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.w3.org/2001/06/grammar
                             http://www.w3.org/TR/speech-grammar/grammar.xsd"

         xml:lang="de-DE" version="1.0">
  <rule id="thema" scope="public">
    <one-of>
 
<item>Spielera01</item>


  </one-of>
  </rule>
</grammar>


Wie müsste ich denn vorgehen, wenn ich jetzt - Spielera01 - z.B. durch Schmidt
ersetzen will?

Der Vorschlag von Dir wäre in der Tat eher "einfach", würde mir aber erstmal ausreichen..

Liebe Grüße und Danke!

Gooner

Moderiert von user profile iconChristian S.: XML-Tags hinzugefügt
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Di 29.06.10 19:04 
Zuerst muss man das Dokument einlesen (komplett in Speicher, sollte das Dokument viel zu groß sein muss man sich gedanken über SAX machen).
ausblenden C#-Quelltext
1:
XDocument doc = XDocument.Load("filename.xml");					


Mit der XPath-Extension-Methoden kannst du ein beliebiges Xml-Element auswählen:
ausblenden C#-Quelltext
1:
2:
3:
XElement spielera01 = document.XPathSelectElement("//item[text()='Spielera01']");

spielera01.Value = "Mesut Özil";


das wars...

Gruß
Gooner Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 30.06.10 10:28 
Hallo Daniel,

wenn ich das ganze jetzt so..

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
private void button2_Click(object sender, EventArgs e)
        {
            XDocument doc = XDocument.Load("Default_18_Kader.xml");
            XElement spielera01 = doc.XPathSelectElement("//item[text()='Spielera01']");
            spielera01.Value = ("Mesut Özil");
        }


..probiere, bekomme ich eine NullReferenceException mit der Meldung, dass
der Objektverweis nicht auf eine Objektinstanz festgelegt wurde.

Hast Du eine Idee, wie ich das am besten gelöst bekomme?

Gruß
Gooner

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 30.06.10 10:35 
Das liegt daran, dass der XPath-Ausdruck kein Element zurück gibt.

Deine Struktur ist wohl doch anders, am besten du fügst die XML hier mal rein (und nicht das Schema).

und bitte denke an die [cs ]-Tags für C#-Code und [ xml] für Xml.

Gruß
Gooner Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 30.06.10 10:57 
Hallo Daniel,

Die xml. Datei besteht nur aus:

ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.w3.org/2001/06/grammar
                             http://www.w3.org/TR/speech-grammar/grammar.xsd"

         xml:lang="de-DE" version="1.0">
  <rule id="thema" scope="public">
    <one-of>


<item>Kopf spielera01 spielerb01</item>
<item>Kopf spielerb01 spielera01</item>
<item>Boden spielera01 spielerb01</item>
<item>Boden spielerb01 spielera01</item>

  </one-of>
  </rule>
</grammar>


Und noch ungefähr 2500 anderen items aber die wollte ich jetzt hier nicht reinkopieren :-)

Könnte Dir die ganze xml.Datei auch per Mail zukommen lassen oder so, wie Du willst..

Vielen Dank!

Gruß
Gooner
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mi 30.06.10 11:03 
Letztes mal sah deine Datei noch <item>Spielera01</item> so aus. Deshalb funktioniert der XPath-Ausdruck nicht.

Die Struktur der Xml ist total unsinnig. Wenn du nichts daran ändern kannst, würde ich vorschlagen du machst erst eine Transformation. Ansonsten gleich richtig machen.

Ansonsten schau dir XPath genauer an, bzw. überleg dir was du wirklich willst, bzw. an welchem Kriterium du nun das item auswählen willst.

So ist das Ganze aber total unlogisch, unschön bis unmöglich.
Gooner Threadstarter
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Mi 30.06.10 11:22 
Ich habe Dir mal eine pn geschickt, hoffe das ist ok..

Gruß
Gooner
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 30.06.10 18:05 
Eigentlich nicht, siehe §2.3 in unseren Richtlinien :) .

_________________
>λ=