none
2 Fragen zu Serialisierung (Zeilenumbruch & Headereintrag) RRS feed

  • Frage

  • Hallo Zusammen,
    2 Probleme, Herausforderungen.

    A) Für mich reicht einen Low Header

    IST:
    <STORAGEPRODUCT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">default<POSITIONS>
    		<POSITION>
    			<CounterIndex value="0" />
    			<Label value="Testmarking0815" />
    		</POSITION>
    		<POSITION>
    		
    SOLL:
    <STORAGEPRODUCT>default<POSITIONS>
    		<POSITION>
    			<CounterIndex value="0" />
    			<Label value="Testmarking0815" />
    		</POSITION>
    		<POSITION>
    B) Beim Serialisieren wird alles in eine Zeile geschrieben.
       Nur über den Browser gut zu lesen.
       Besser wäre, wenn es wie üblich mit Zeilenumbrüche wäre.
      
    Wie kann ich diese Punkte erreichen? Bestimmt einfach, wenn man es weiß.
    Danke im Voraus.
    Viele Grüße Sandra
    -----------------------
    Was habe ich versucht?
     public class MyXmlTextWriter : XmlTextWriter
            {
                // Add whichever constructor(s) you need, e.g.:
                public MyXmlTextWriter(Stream stream, Encoding encoding)
                    : base(stream, encoding)
                {
                }
    
                public override void WriteStartDocument()
                {
                    // Do nothing (omit the declaration)
    
                    // lässt das dann weg
                    // <?xml version="1.0" encoding="utf-8"?>
                }
    
                public override void WriteQualifiedName(string localName, string ns)
                { 
                
                }
    
                public override void WriteStartAttribute(string prefix, string localName, string ns)
                {
                    base.WriteStartAttribute(prefix, localName, ns);
                }
            }
    		
    ///////////////////////
            public static void SerializeObject<T>(string FileName, T DataObject)
            {
                XmlSerializer Serializer = new XmlSerializer(typeof(T));
                FileStream FileStream = new FileStream(FileName, FileMode.Create);
                //XmlTextWriter TextWriter = new XmlTextWriter(FileStream, Encoding.ASCII);
                MyXmlTextWriter TextWriter = new MyXmlTextWriter(FileStream, Encoding.ASCII);
                TextWriter.Indentation = 4;
                TextWriter.IndentChar = ' ';
                TextWriter.Formatting = Formatting.Indented;
                //TextWriter.Settings.NewLineOnAttributes = true;   ????
                Serializer.Serialize(TextWriter, DataObject);
    
                TextWriter.Close();
                FileStream.Close();
                FileStream.Dispose();
            }



    Montag, 29. Februar 2016 20:17

Antworten

Alle Antworten