Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 10:47

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



XML deseralizer/serializer

Discussion on XML deseralizer/serializer within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
Ludder231's Avatar
 
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
XML deseralizer/serializer

Hi,

ich möchte gerne eine XML erstellen und auch auslesen. Einlesen klappt ganz gut bis auf eine Sache. Ich möchte mehrere Einträge gleich haben. Ich zeigs mal:

PHP Code:
<Versorgen>
    <
Füttern>
         <
Heu>5</Heu>
         <
Hafer>5</Hafer>
    </
Füttern>
  
     <
Tränken>true</Tränken>
      <
Striegeln>true</Striegeln>

      <
Füttern>
         <
Heu>11</Heu>//Hier muss Füttern nochmal eingetragen werden
         
<Hafer>12</Hafer>
    </
Füttern>

     <
Tränken>true</Tränken>
      <
Striegeln>true</Striegeln>
</
Versorgen
Ich hab die XML mehr oder weniger erstellen können. aber ich glaube ich mache das hier falsch.

PHP Code:
<?xml version="1.0" encoding="utf-8"?>
<Füttern xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <bHeu>true</bHeu>
  <bHafer>true</bHafer>
  <sMengeHeu>auto</sMengeHeu>
  <sMengeHafer>auto</sMengeHafer>
  <bSäugen>true</bSäugen>
</Füttern><?xml version="1.0" encoding="utf-8"?>
<Tränken xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <bTränken>true</bTränken>
</Tränken>
Das Hauptproblem ist eigentlich, dass ich mehrfachnennungen im XML habe...
Ludder231 is offline  
Old 06/27/2016, 21:38   #2
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Ich kann dir keine lösung für dein problem geben aber wenn du vernünftige klassen baust kannst du einfach alles hiermit serialisieren

Normalerweise macht man das ganze so das man keine doppelten einträge hast.

und bitte lass das mit der hungarian notation
YatoDev is offline  
Thanks
1 User
Old 06/28/2016, 20:42   #3


 
Else's Avatar
 
elite*gold: 4
The Black Market: 165/0/0
Join Date: Feb 2008
Posts: 3,847
Received Thanks: 1,267
Quote:
Originally Posted by »FlutterShy™ View Post
Ich kann dir keine lösung für dein problem geben
Dafür ich aber. ;-)

Quote:
Originally Posted by »FlutterShy™ View Post
aber wenn du vernünftige klassen baust kannst du einfach alles hiermit serialisieren
Muss es gleich völlig oversized sein? Für sein Anwendungszweck wird eine XML-Serialisierung vollkommen reichen.

Quote:
Originally Posted by »FlutterShy™ View Post
Normalerweise macht man das ganze so das man keine doppelten einträge hast.
Wer weiß, wofür es gut ist. Dafür gibt es letzten Endes "Listen". :P

Siehe hier, für die XML-Serialierung mit Liste:


Siehe hier, für die XML-Serialisierung:


Code:
public static string SerializeToXML<T>(T Content) {
  try {
    using (MemoryStream _ObjectMemoryStream = new MemoryStream()) {
      XmlSerializer _ObjectXmlSerializer = new XmlSerializer(typeof(T));

      _ObjectXmlSerializer.Serialize(_ObjectMemoryStream, Content);
      _ObjectMemoryStream.Position = 0;

      using (StreamReader sr = new StreamReader(_ObjectMemoryStream, Encoding.Default)) {
        return sr.ReadToEnd();
      } // end using
    } // end using
  } catch (Exception Error) {
    return Error.StackTrace;
  } // end try-catch
}

public static T DeserializeFromXML<T>(string Content) {
  try {
    XmlSerializer _ObjectXmlSerializer = new XmlSerializer(typeof(T));

    using (MemoryStream _ObjectMemoryStream = new MemoryStream(Encoding.Default.GetBytes(Content))) {
      return (T)Convert.ChangeType(_ObjectXmlSerializer.Deserialize(_ObjectMemoryStream), typeof(T));
    } // end using
  } catch (Exception Error) {
    throw Error;
  } // end try-catch
}
Else is offline  
Thanks
2 Users
Reply




All times are GMT +2. The time now is 10:47.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.