Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

31.10.2014, 16:47

C# einzelne Deserialisierung

Hey,

ich würde gerne wissen, ob es in C# möglich ist, aus einer XML Datei, die reihenweise befüllt worden ist, auch einzeln wieder rauszubekommen, sprich:

<?xml version="1.0" encoding="utf-8"?>
<Movie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Title>Starship Troopers</Title>
<Rating>6.9</Rating>
<ReleaseDate>1997-11-07T00:00:00</ReleaseDate>
</Movie>
<Movie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Title>Starship Troopers</Title>
<Rating>6.9</Rating>
<ReleaseDate>1997-11-07T00:00:00</ReleaseDate>
</Movie>
<Movie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Title>Starship Troopers</Title>
<Rating>6.9</Rating>
<ReleaseDate>1997-11-07T00:00:00</ReleaseDate>
</Movie>
<Movie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Title>Starship Troopers</Title>
<Rating>6.9</Rating>
<ReleaseDate>1997-11-07T00:00:00</ReleaseDate>
</Movie>
<Movie xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Title>Starship Troopers</Title>
<Rating>6.9</Rating>
<ReleaseDate>1997-11-07T00:00:00</ReleaseDate>
</Movie>
(so worden sie Block für Block reingespeichert, nicht als Array!!)

ob es möglich ist, sie auch wieder so einzeln rauszulesen??

ich kann sie nur komplett wieder so rauslesen, wenn ich sie zu vor als Array gespeichert habe, aber es ist mir ganz wichtig, sie NICHT als Arrayformat zu speichern, sondern nach meiner definierten Bedingung bzw eines Events dann eine komplette "Movie" Struktur in die selbe Datei zu speichern.


Wäre über Tipps und Ratschläge sehr dankbar :)

Mfg

JP

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

31.10.2014, 16:59

Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

31.10.2014, 17:32

jo vielen Dank @BlueCobold :))

und kann ich es noch hinbekommen, die ganze deserialisierte "movie" struct einer movie variable im code zu zuweisen, qusi so:

Movie currMovie = reader.ReadElement() as Movie;

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

31.10.2014, 17:45

Wenn es sich um ein struct handelt, dann dürfte es nicht mit dem as Schlüsselwort funktionieren, probiere stattdessen lieber Movie currMovie = (Movie)reader.ReadElement(); oder, sofern vorhanden, sogar eine generische Überladung (Movie currMovie = reader.ReadElement<Movie>();).

Und by the way: das von dir im Startbeitrag geschriebene XML ist ungültig. In XML darf es immer nur 1 Wurzel-Element geben, auf oberster Ebene gibt es bei dir aber mehrere Movie-Elemente.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

31.10.2014, 17:47

Dafür müsste er den Reader selbst schreiben. Stattdessen wird es wohl notwendig sein die einzelnen Komponenten eines Movies manuell aus dem Reader in die Movie-Instanz zu übertragen. Eine Read-Methode in einem Movie wäre ebenfalls eine Möglichkeit.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

6

31.10.2014, 17:51

Das war nur ein Beispiel mit dem ReadElement()^^, die gibt es so nicht und alle anderen liefern unverständliche exceptions :(

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

31.10.2014, 17:56

Die Beispiele in den Links sind doch eindeutig und lassen alle Elemente und deren Werte ausgeben. Statt sie auszugeben musst Du sie doch nur in Deine Klassen-Instanzen übertragen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige