Avatar billede carlos123 Nybegynder
26. august 2004 - 14:54 Der er 14 kommentarer og
1 løsning

Oprette tabeller udfra xml dokument

Hejsa

Er der nogen der ved om det er muligt, at lave tabeller, der indeholder noget specifikt indhold fra en xml fil.
eks.

Overskrift
Tabel med indhold

Overskrift
Ny tabel med andet indhold.

alt indholdet kommer fra samme xml dokument
Avatar billede basementjack Nybegynder
26. august 2004 - 18:07 #1
Ja. Lav et DataGrid og lav en datasource funktion hvor du henter fra dit xml dokument.
Avatar billede basementjack Nybegynder
26. august 2004 - 18:34 #2
Her er et eksempel i VB...

<%@ Page Language="VB" %>
<script runat="server">

    Function xmlData() As System.Data.DataSet
        Dim ds As New System.Data.DataSet()
        ds.ReadXml(Server.MapPath("myXml.xml"))
        return ds
    End Function

    Sub Page_Load()
        If not Page.IsPostback Then
            Repeater1.DataSource = xmlData()
            Repeater1.DataBind()
        End If
    End Sub

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <asp:Repeater id="Repeater1" runat="server">
            <ITEMTEMPLATE>
                <asp:label runat="server" Text='<%# Container.DataItem("myHeader") %>' />
                <table>
                    <tr>
                        <td>
                            <asp:label Text='<%# Container.DataItem("myContent") %>' runat="server" />
                        </td>
                    </tr>
                </table>
            </ITEMTEMPLATE>
        </asp:Repeater>
    </form>
</body>
</html>
Avatar billede carlos123 Nybegynder
26. august 2004 - 18:58 #3
Lister den metode der ikke kun i en tabel?
det jeg er interreseret i er at hive noget at informationen ud i en tabel, og bagefter hive noget data ud i en anden tabel.

mvh Carl
Avatar billede basementjack Nybegynder
26. august 2004 - 19:01 #4
Jo den lister kun noget i en tabel.. Men det var også det der stod i opr. spm. ;)

Prøv at forklare lidt mere i dybden med hvad det er du vil..
Avatar billede carlos123 Nybegynder
26. august 2004 - 19:20 #5
okay, mit eksempel var måske ikke så godt. det jeg mente var at noget af dataen fra en xml skulle i en tabel, og noget andet af dataen skal laves i en ny tabel, er det muligt?
Avatar billede basementjack Nybegynder
26. august 2004 - 19:21 #6
To tabler med lidt indhold fra en xml fil og en table mere med indhold fra samme xml fil?
Avatar billede carlos123 Nybegynder
26. august 2004 - 19:29 #7
jeg forestiller mig xml filen ligner noget i denne stil

<minxml>
  <produktname=etellerandet>
    <1 produkt></1 produkt>
    <2 produkt></2 produkt>
  </produktname=etellerandet>

  </produktname=nogetandet>
    <3 produkt></3 produkt>
    <4 produkt></4 produkt>
  </produktname=nogetandet>
</minxml>

indholdet af denne xml, skal så lægges i 2 seperate tabeller,
således at i den første tabel, der har overskrifen "etellerandet" indeholder produkt1 og 2. så afsluttes denne tabel.

i den anden tabel, der har overskriften "nogetandet" indeholder så produkt3 og 4.

var det en bedre beskrivelse?
det kan være lidt svært at forklare :-(

mvh Carl
Avatar billede basementjack Nybegynder
26. august 2004 - 19:37 #8
<myXml>
    <produkt>
        <produktname>etellerandet</produktname>
        <itemDetails1>etellerandet specs.</itemDetails1>
    </produkt>
    <produkt>
        <produktname>nogetandet</produktname>
        <itemDetails1>nogetandets specs.</itemDetails1>
    </produkt>
</myXml>

Sådan skal det nok nærmere se ud..

Så virker det jeg skrev før sådan:

<%@ Page Language="VB" %>
<script runat="server">

    Function xmlData() As System.Data.DataSet
        Dim ds As New System.Data.DataSet()
        ds.ReadXml(Server.MapPath("myXml.xml"))
        return ds
    End Function

    Sub Page_Load()
        If not Page.IsPostback Then
            Repeater1.DataSource = xmlData()
            Repeater1.DataBind()
        End If
    End Sub

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <asp:Repeater id="Repeater1" runat="server">
            <ITEMTEMPLATE>
                <asp:label runat="server" Text='<%# Container.DataItem("produktname") %>' />
                <table>
                    <tr>
                        <td>
                            <asp:label Text='<%# Container.DataItem("itemDetails1") %>' runat="server" />
                        </td>
                    </tr>
                </table>
            </ITEMTEMPLATE>
        </asp:Repeater>
    </form>
</body>
</html>
Avatar billede carlos123 Nybegynder
27. august 2004 - 10:25 #9
min xml struktur ser sådan her ud,

<list>
    <group name="Legetøj">
            <file>
                <owner>ala</owner>
                <name>powerranges</name>
                <description>det sygeste legetøj</description>
                <link>./lego/lego.html</link>
            </file>
           
            <file>
                <owner>ula</owner>
                <name>etellerandetnavn</name>
                <description>Meget lang beskrivelse af et produkt</description>
                <link>./ula/ula.html</link>
            </file>
    </group>

    <group name="CD'er">
        <file>
            <owner>Ozzy Osbourne</owner>
            <name>En eller anden title</name>
            <description>meget langt album</description>
            <link>./ozzy/enellerandentitle.html</link>
        </file>

        <file>
            <owner>EltonJohn</owner>
            <name>Et eller andet album</name>
            <description>somethingalba</description>
            <link>./eltonjohn.html</link>
        </file>

    </group>

</list>

Det er så de 2 grupper der skal i hver sin tabel, altså en tabel med "legetøj" grr. og en tabel med "cd'er". kan det lade sig gøre med overnævnte eksempel?

mvh Carl

jeg gør opmærksom på at navne og titler kun er for eksemplets skyld.
Avatar billede basementjack Nybegynder
28. august 2004 - 09:16 #10
Jeg vil foreslå at du laver din xml om til :
<?xml version="1.0" standalone="yes"?>
<list>
    <file>
        <groupname>Legetoej</groupname>
        <owner>ala</owner>
        <name>powerranges</name>
        <description>det sygeste legetoej</description>
        <link>./lego/lego.html</link>
    </file>
    <file>
        <groupname>Legetoej</groupname>
        <owner>ula</owner>
        <name>etellerandetnavn</name>
        <description>Meget lang beskrivelse af et produkt</description>
        <link>./ula/ula.html</link>
    </file>
    <file>
        <groupname>CDer</groupname>
        <owner>Ozzy Osbourne</owner>
        <name>En eller anden title</name>
        <description>meget langt album</description>
        <link>./ozzy/enellerandentitle.html</link>
    </file>
    <file>
        <groupname>CDer</groupname>
        <owner>EltonJohn</owner>
        <name>Et eller andet album</name>
        <description>somethingalba</description>
        <link>./eltonjohn.html</link>
    </file>
</list>

Så kan du bruge dette:
<%@ Page Language="VB" Debug="True" %>
<script runat="server">

    Function xmlData() As System.Data.DataSet
        Dim ds As New System.Data.DataSet()
        ds.ReadXml(Server.MapPath("myXml.xml"))
        return ds
    End Function

    Sub Page_Load()
        If not Page.IsPostback Then
            Repeater1.DataSource = xmlData()
            Repeater1.DataBind()
        End If
    End Sub

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <asp:Repeater id="Repeater1" runat="server">
            <ITEMTEMPLATE>
                <asp:label runat="server" Text='<%# Container.DataItem("groupname") %>' />
                <table border="1">
                    <tr>
                        <td>
                            <asp:label Text='<%# Container.DataItem("owner") %>' runat="server" />
                        </td>
                        <td>
                            <asp:label Text='<%# Container.DataItem("name") %>' runat="server" />
                        </td>
                        <td>
                            <asp:label Text='<%# Container.DataItem("description") %>' runat="server" />
                        </td>
                        <td>
                            <asp:label Text='<%# Container.DataItem("link") %>' runat="server" />
                        </td>
                    </tr>
                </table>
            </ITEMTEMPLATE>
        </asp:Repeater>
    </form>
</body>
</html>
Avatar billede basementjack Nybegynder
30. august 2004 - 14:26 #11
Finder du ud af noget, Carlos123?..
Avatar billede carlos123 Nybegynder
30. august 2004 - 14:40 #12
tjaa, jeg kan ikke lave min struktur om på den måde, du forslog. det eksempel du har lavet er næsten magen til det som køre på min nuværende hjemmeside, jeg er i stedet begeyndt at leget med 2 repeaters, eller noget i den stil.
du må selvfølgelig godt få point. hvis du opretter et svar.
Avatar billede basementjack Nybegynder
30. august 2004 - 14:57 #13
Du giver kun point hvis jeg har hjulpet dig selvfølgelig... Og hvis jeg må vil jeg da gerne vide hvordan du ellers løste dit problem også af hensyn til andre brugere der måske søger svar på samme spm.. :)
Avatar billede carlos123 Nybegynder
30. august 2004 - 15:24 #14
Selvfølgelig skal du have point :-)
Avatar billede basementjack Nybegynder
30. august 2004 - 19:36 #15
Jamen så siger jeg tak.. ;-)
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