Avatar billede lasserasch Juniormester
29. marts 2010 - 11:04 Der er 5 kommentarer og
1 løsning

Simpel måde at binde XML til en objekt struktur eller lign

Hejsa.

Når jeg læser XML idag, så navigerer jeg igennem XML'en og læser node for node.

Ved en stor XML fil bliver det hurtigt en del kode og nemt lidt uoverskueligt.

Så mit spørgsmål er om der ikke findes en nemmere måde at at læse en XML på, end at løbe den igennem manuelt?

Jeg skal have læst XML filen fra en klasse direkte. Så jeg kan ikke rigtig se at jeg skulle kunne bruge XMLDataSource, hvilket jo ellers ville have været ret fedt.

Findes der andre tricks?

Mvh.
LAsse
Avatar billede janus_007 Nybegynder
29. marts 2010 - 11:29 #1
Hvad betyder løbe igennem manuelt?

Hvad vil du gerne kunne?
Avatar billede arne_v Ekspert
29. marts 2010 - 15:00 #2
Hvis du har et schema for XML filerne, saa kan du bruge XSD utilityen tiul at generere klasser som mappes til og fra XML formatet.
Avatar billede arne_v Ekspert
29. marts 2010 - 16:32 #3
Eksempel:

C:\>type data.xml
<all>
    <rec>
        <id>1</id>
        <txt>A</txt>
    </rec>
    <rec>
        <id>2</id>
        <txt>BB</txt>
    </rec>
    <rec>
        <id>3</id>
        <txt>CCC</txt>
    </rec>
</all>


C:\>xsd data.xsd /c
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.
Writing file 'C:\data.cs'.

C:\>type test.cs
using System;
using System.IO;
using System.Xml.Serialization;


namespace E
{
    public class Test
    {
        public static void Main(string[] args)
        {
            StreamReader sr = new StreamReader("data.xml");
            XmlSerializer ser = new XmlSerializer(typeof(all));
            all a = (all)ser.Deserialize(sr);
            foreach(allRec r in a.rec)
            {
                Console.WriteLine(r.id + " " + r.txt);
            }
            sr.Close();
        }
    }
}


C:\>csc test.cs data.cs
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.3053
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.


C:\>test
1 A
2 BB
3 CCC
Avatar billede arne_v Ekspert
26. april 2010 - 02:59 #4
Lasse ?
Avatar billede lasserasch Juniormester
02. maj 2010 - 11:21 #5
Hej Arne. Lad os bare få lukket den her. Jeg brugte en anden indgangsvinkel til den konkrete problemstilling, men smid svar så får vi den lukket...

:-)


Mvh.
Lasse
Avatar billede arne_v Ekspert
02. maj 2010 - 15:38 #6
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester