Avatar billede flamsk Nybegynder
14. november 2006 - 11:25 Der er 3 kommentarer

Xml til DataSet

<ting>
    <sportsbiler>
        <bilmærke>toyota</bilmærke>
        <bilmærke>bmw</bilmærke>
    </sportsbiler>
    <personbiler>
        <bilmærke>skode</bilmærke>
        <bilmærke>lada</bilmærke>
    </personbiler>
    <personer>
        <person>
            <name>ole</navn>
            <venner>
                    <ven>
                      <Name>kurt</Name>
                      <Alder>25</Alder>
                    </ven>
            </venner>
        </person>
    </personer>
</ting>

Jeg har overstående XML kode. Hvordan kan jeg få indlæst personen "ole"´s venner i et DataSet ?

Hvis jeg har følgende
DataSet tmp = new DataSet();
tmp.ReadXML("sti til xml koden");
DataSet biler = tmp.Tables["biler"];
så indeholder biler kun 1 row(som ikke indeholder nogen bilnmærker) og ikke de 2 som er i xml koden. hvorfor ?
hvis jeg gør følgende
DataSet biler = tmp.Tables["bilmærker"]; så får jeg 4 rows, bilmærker fra "sportsbiler" samt dem fra "personbiler" hvorfor ?
Avatar billede bulgroz Nybegynder
14. november 2006 - 13:51 #1
For det første ser det ud til at du har lidt rod i din testfil. Dine start og slut tags må stemme overens! Det nytter f.eks. ikke at skrive <name>ole</Navn>

Men når dette er rettet skal du lo huske på at de tabeller som kan mappes til er navngivet i henhold til dine tags i xml filen. Med andre ord kan du ikke mappe til "biler", når du kun har tags som "bilmærker" og "sportsbiler" (lugter lidt af at du har vist os den gale xml test fil)

Derudover undrer det mig at du kan caste tmp.Tables["bilmærker"] direkte til et DataSet ?? Det er nok blot en fejl i din beskrivelse.

For at se hvad du "får i kassen" kan du jo altid lave et lille eksempel som nedenstående, som viser navnene på de tabeller du kan tilgå.

            DataSet dataSet = new DataSet();
            dataSet.ReadXml(<filnavn og sti>);

            StringBuilder stringBuilder = new StringBuilder();

            foreach (DataTable table in dataSet.Tables)
            {
                stringBuilder.AppendLine(table.TableName);
            }

            MessageBox.Show(stringBuilder.ToString());
Avatar billede arne_v Ekspert
15. november 2006 - 03:04 #2
XmlDocument og SelectNodes/SelectSingleNode var måske mere egnet
Avatar billede arne_v Ekspert
10. december 2006 - 01:02 #3
flamsk ?
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