XML schreiben



  • Hallo, ich habe folgende XML aufbau:

    <database>
    	<bank>
    		<BLZ>aaa</BLZ>
    		<Bezeichnung>bbb</Bezeichnung>
    		<PLZ>ccc</PLZ>
    		<Ort>...</Ort>
    		<Verfahren>...</Verfahren>
    		<Client>...</Client>
    		<Entwickler>...</Entwickler>
    		<Homepage>...</Homepage>
    		<Bemerkung>...</Bemerkung>
    	</bank>
    	<bank>
    		<BLZ>...</BLZ>
    		<Bezeichnung>...</Bezeichnung>
    		<PLZ>...</PLZ>
    		<Ort>Aachen</Ort>
    		<Verfahren>...</Verfahren>
    		<Client>...</Client>
    		<Entwickler>...</Entwickler>
    		<Homepage>...</Homepage>
    		<Bemerkung>...</Bemerkung>
    	</bank>
            ...
            <bank>
                    ....
            </bank>
    </database>
    
    1. wie kann ich jetzt mit c#.net an bestimmten stelle (z.B. bei 2.Datensatz unter Ort) von Aachen nach Mönchengladbach umändern ?

    2. wie kann ich in dieser XML datei bestimmte stelle finden ? (wenn man berücksichtigt, dass jeder datensatz einmalige BLZ hat)

    mfg,
    Sergius



  • Die elegenateste und wie ich finde beste art und weise ist. Für eine XML die man erzeugen/einlesen möchte eine Klasse erstellen und diese mit dem XmlSerializer zu Serialisieren/Deserialisieren.

    Bsp.:

    [Serializable()]
    public class TheXml
    {
       private int m_Width;
       private int m_Height;
    
       // Es werden nur public Variablen/Properties serializiert
       // Properties müssen eine Get und Set "Methode" haben.
    
       public int Width
       {
           get { return m_Width; }
           set { m_Width = value; }
       }
    
       public int Height
       {
           get { return m_Height; }
           set { m_Height= value; }
       }
    
       public static void Main(string[] args)
       {
          System.Xml.Serialization.XmlSerializer s = new System.Xml.Serialization.XmlSerializer(typeof(TheXml));
          FileStream stream = new FileStream(@"C:\test.xml", FileMode.Create, FileAccess.Write);
          TheXml xml = new TheXml();
          xml.Width = 100;
          xml.Height = 200;
    
          // Die Xml Datei erzeugen
          s.Serialize(stream, xml);
          stream.Close();
    
          FileStream stream = new FileStream(@"C:\test.xml", FileMode.Open, FileAccess.Read);
          // Aus der Datei lesen
          TheXml xml2 = (TheXml)s.Deserialize(stream);
       }
    }
    

    Das Ergebnis sieht ungefähr so aus:
    <TheXml>
    <Height>200</Height>
    <Width>200</Width>
    </TheXml>


Anmelden zum Antworten