Avatar billede pongman Nybegynder
26. november 2008 - 00:57 Der er 1 kommentar

Indlæsning af xml vha ReadXml

Jeg har nogle problemer med at indlæse en xml-fil i et dataset.
Min kode der indlæser xml filen:

        DataSet DS = new DataSet();
        DS.ReadXmlSchema(Server.MapPath("App_Data/Test.xsd"));
        DS.ReadXml(Server.MapPath("App_Data/Test.xml");

        DataTable DT = DS.Tables["tools"];

Min xml-fil:
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Test.xsd">
    <items>
        <tools>
            <post name="Hammer">
                <værdi>45.885,6</værdi>
            </post>
            <post name="Mejsel">
                <værdi>45.885,6</værdi>
            </post>
        </tools>
        <hardware>
            <post name="Kabinet">
                <værdi>45.885,6</værdi>
            </post>
        </hardware>
    </items>
        <<<Her kommer flere f.eks. "<customer>">>>
</root>

Det jeg gerne vil er at kunne gøre er noget lignende:

string type = "tools"
DataTable DT = DS.Tables[type];
GridView1.DataSource = DT; 

Så jeg får en DataTable med alle "tools":
name  | værdi
Hammer | 45.885,6
Mejsel | 45.885,6

Men når jeg kører ovenstående kode (helt oppe i toppen :) )får jeg en liste over tables (DS.Tables):
root, items, tools, hardware, postJeg har nogle problemer med at indlæse en xml-fil i et dataset.
Min kode der indlæser xml filen:

        DataSet DS = new DataSet();
        DS.ReadXmlSchema(Server.MapPath("App_Data/Test.xsd"));
        DS.ReadXml(Server.MapPath("App_Data/Test.xml");

        DataTable DT = DS.Tables["tools"];

Min xml-fil:
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Test.xsd">
    <items>
        <tools>
            <post name="Hammer">
                <værdi>45.885,6</værdi>
            </post>
            <post name="Mejsel">
                <værdi>45.885,6</værdi>
            </post>
        </tools>
        <hardware>
            <post name="Kabinet">
                <værdi>45.885,6</værdi>
            </post>
        </hardware>
    </items>
        <<<Her kommer flere f.eks. "<customer>">>>
</root>

Det jeg gerne vil er at kunne gøre er noget lignende:

string type = "tools"
DataTable DT = DS.Tables[type];
GridView1.DataSource = DT; 

Så jeg får en DataTable med alle "tools":
name  | værdi
Hammer | 45.885,6
Mejsel | 45.885,6

Men når jeg kører ovenstående kode (helt oppe i toppen :) )får jeg en liste over tables :
root, items, tools, hardware, post

og det er kun (så vidt jeg kan se) 'post' tabellen som indeholder noget, og den indeholder så data for alle 'post's dvs 3 rows i dette tilfælde.

og det er kun (så vidt jeg kan se) 'post' tabellen som indeholder noget, og den indeholder så data for alle 'post's dvs 3 rows i dette tilfælde.

Jeg skal være den første til at indrømme at jeg ikke er den skarpeste til xml da jeg sjældent har arbejdet med det før, så kom endelig med forslag og bær over med mig, klokken er mange og tror jeg er ved at stirre mig blind på mit problem :)

Mvh,
Morten
Avatar billede pongman Nybegynder
26. november 2008 - 01:01 #1
Der gik noget galt med noget c/p der og man kan åbenbart ikke redigere ens post så her er den rigtige:

Jeg har nogle problemer med at indlæse en xml-fil i et dataset.
Min kode der indlæser xml filen:

        DataSet DS = new DataSet();
        DS.ReadXmlSchema(Server.MapPath("App_Data/Test.xsd"));
        DS.ReadXml(Server.MapPath("App_Data/Test.xml");

        DataTable DT = DS.Tables["tools"];

Min xml-fil:
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Test.xsd">
    <items>
        <tools>
            <post name="Hammer">
                <værdi>45.885,6</værdi>
            </post>
            <post name="Mejsel">
                <værdi>45.885,6</værdi>
            </post>
        </tools>
        <hardware>
            <post name="Kabinet">
                <værdi>45.885,6</værdi>
            </post>
        </hardware>
    </items>
        <<<Her kommer flere f.eks. "<customer>">>>
</root>

Det jeg gerne vil er at kunne gøre er noget lignende:

string type = "tools"
DataTable DT = DS.Tables[type];
GridView1.DataSource = DT; 

Så jeg får en DataTable med alle "tools":
name  | værdi
Hammer | 45.885,6
Mejsel | 45.885,6

Men når jeg kører ovenstående kode (helt oppe i toppen :) )får jeg en liste over tables (DS.Tables):
root, items, tools, hardware, post

og det er kun (så vidt jeg kan se) 'post' tabellen som indeholder noget, og den indeholder så data for alle 'post's dvs 3 rows i dette tilfælde.

Jeg skal være den første til at indrømme at jeg ikke er den skarpeste til xml da jeg sjældent har arbejdet med det før, så kom endelig med forslag og bær over med mig, klokken er mange og tror jeg er ved at stirre mig blind på mit problem :)
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