tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
1171
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von lukasS
    lukasS lukasS ist offline Mitglied Brokat
    Registriert seit
    Jun 2003
    Ort
    Bochum
    Beiträge
    264
    Hallo,

    ich habe eine XML mit meinen mp3s erstellt (Bsp, s. u.). Würde gerne die Daten über XSL auslesen, damit ich die mir im Browser anschauen kann. Ich würde gerne eine Tabelle mit den Interpreten haben, in der alle Titel mit dem dazugehörigen Album drinstehen. Leider erzeuge ich für jeden Titel eine neue Zeile in XSL und darüber steht auch immer der Interpret. Da ich keine Ahnung von XSL habe, wollte ich fragen, ob mir jemand bei diesen "eigentlich" einfachen Problem helfen könnte. Unten habe ich ein Bsp meiner XSL (stark verkürzt).

    XML:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    <mp3>
        <tags Titel="School" Album="Archetype" Interpret="Fear Factory" Länge="02:38" KBitS="128"/>
        <tags Titel="Slave Labor" Album="Archetype" Interpret="Fear Factory" Länge="03:53" KBitS="128"/>
        <tags Titel="Undercurrent" Album="Archetype" Interpret="Fear Factory" Länge="04:04" KBitS="128"/>
        <tags Titel="Kiss" Album="20 Hits Of The 80S Volume Two" Interpret="Tom Jones" Länge="03:34" KBitS="192"/>
        <tags Titel="Blame It On The Boogie" Album="20 Hits Of The 80S Volume Two" Interpret="Big Fun" Länge="05:32" KBitS="192"/>
    </mp3>

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
        <xsl:template match="/">
            <html>
                <head>
                    <title>MP3</title>      
                </head>
                <body>
                    <table border="1">
                            <xsl:apply-templates select="mp3/tags"/>
                    </table>
                </body>
            </html>
        </xsl:template>
        <xsl:template match="mp3"/>
            <xsl:template match="tags">
                    <tr>
                        <td colspan="2">
                            <xsl:value-of select="@Interpret"/>
                        </td>
                    </tr>
                    <tr id="hide">
                        <td><h3>Titel</h3></td>
                        <td><h3>Album</h3></td>
                    </tr>
                    <tr id="hide">
                        <td><xsl:value-of select="@Titel" /></td>
                        <td><xsl:value-of select="@Album" /></td>
                    </tr>
            </xsl:template>

    Danke schonmal

    Lukas

    PS: Bin ein neuling, was XSL angeht.
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Schau dir doch mal die Grouping-Examples auf http://www.cafeconleche.org/slides/oop2003/xslt2/
    an.

    Basiert jedoch alles auf XSLT 2.0 und dass kann noch nicht jeder XSLT Prozessor.

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    Avatar von lukasS
    lukasS lukasS ist offline Mitglied Brokat
    Registriert seit
    Jun 2003
    Ort
    Bochum
    Beiträge
    264
    Danke für den link, ich verstehe leider nur Bahnhof daraus. Ich kriege aber immerhin eine if-Abfrage hin.

    Trotzdem kapiere ich diesen XSL - Kram nicht. Wenn ich mehrere Tags mit gleichen Namen habe (wie oben in der XML), ist es dann wie in einer Schleife, die solage läuft, bis die Tags enden oder wie muss ich das verstehen?

    Wie kann ich einer Variable einen anderen Wert zuweisen? Ich muss sagen, dass C++ einfacher ist.
     

  4. #4
    broetchenfan broetchenfan ist offline Grünschnabel
    Registriert seit
    Oct 2004
    Beiträge
    3
    huhu ich grüße Dich,

    ich habe dir anbei mal meinen Lösungsweg geschickt,

    wenn es dass ist was Du gerne wolltest, d.h. ich Dich also richtig verstanden habe dann kannst Du Dich bei Fragen gerne einfach nochmal melden

    schönen Tag Dir

    mp3.xml sieht bei mir so aus:

    ------------------------------------------------
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="mp3.xsl"?>

    <mp3s>

    <mp3>
    <interpret>Korn</interpret>
    <album>Follow the Leader</album>
    <track>all in the family</track>
    <trackdauer>03:05</trackdauer>
    <KBitS>128</KBitS>
    </mp3>

    <mp3>
    <interpret>Fear Factory</interpret>
    <album>Archetype</album>
    <track>School</track>
    <trackdauer>02:38</trackdauer>
    <KBitS>128</KBitS>
    </mp3>

    <mp3>
    <interpret>Fear Factory</interpret>
    <album>Archetype</album>
    <track>Undercurrent</track>
    <trackdauer>04:04</trackdauer>
    <KBitS>128</KBitS>
    </mp3>

    </mp3s>
    -------------------------------------------------------------------

    mp3.xsl so :

    ______________________________________

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    <html>
    <head>
    <title>mp3.xsl</title>
    </head>
    <body>
    <table border="2">
    <tr>
    <td>Interpret</td>
    <td>Album</td>
    <td>Track</td>
    <td>Dauer</td>
    <td>KBitsS</td>
    </tr>

    <xsl:for-each select="mp3s/mp3">
    <tr>

    <td><xsl:value-of select="interpret"/></td>
    <td><xsl:value-of select="album"/></td>
    <td><xsl:value-of select="track"/></td>
    <td><xsl:value-of select="trackdauer"/></td>
    <td><xsl:value-of select="KBitS"/></td>

    </tr>
    </xsl:for-each>
    </table>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>

    ________________________________________________
     

  5. #5
    Avatar von lukasS
    lukasS lukasS ist offline Mitglied Brokat
    Registriert seit
    Jun 2003
    Ort
    Bochum
    Beiträge
    264
    Danke für die Hilfe!
    Es ist fast richtig. Ich wollte, dass jeder Interpreten in einer eigenen Tabelle steht. Der Interpretenname soll dann über der Tabelle stehen.

    Danke nochmal!

    [edit]
    so ungefähr habe ich mir das gedacht, aber irgendwie funktioniert das nicht. Es soll ja jeder Interpret eine eigene Tabelle haben.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    <xsl:for-each select="mp3s/mp3">
        <xsl:value-of select="interpret"/>
        <table border="2">
            <tr>
                <td>Album</td>
                <td>Track</td>
                <td>Dauer</td>
                <td>KBitsS</td>
            </tr>
        
            <xsl:for-each select=".">
                <tr>
                    <td><xsl:value-of select="album"/></td>
                    <td><xsl:value-of select="track"/></td>
                    <td><xsl:value-of select="trackdauer"/></td>
                    <td><xsl:value-of select="KBitS"/></td>
                </tr>
            </xsl:for-each>
        </table>
    </xsl:for-each>
    [/edit]
    Geändert von lukasS (22.10.04 um 14:36 Uhr)
     

  6. #6
    broetchenfan broetchenfan ist offline Grünschnabel
    Registriert seit
    Oct 2004
    Beiträge
    3
    huhu lukas,

    gerne
    freut mich wenn´s hilft,
    bin doch selbst ne gerade anfangende kackwurst *grins*

    kommst du denn jetzt längs damit, oder magst noch was?

    anbei einfach mal ungefragt meine linklisten favoriten in deutsch *can´t speak english very good*

    sehr einfache und deutsche einführungen *freu* können unter folgenden seiten u.u. weiterhelfen http://www.emacswiki.org/pics/smile.png - http://www.internet-kompetenz.ch/xml/einfuehrung/

    - http://www.usegroup.de/software/xmlt.../einstieg.html

    - http://aktuell.de.selfhtml.org/links...eutschsprachig order more infos *g*

    - http://www.devmag.net/xml/ da gibts ne lustige menge anfänger stuff *finde ich*

    - http://aktuell.de.selfhtml.org/artik...eume/index.htm

    lustige grüße von der jana und eine gute zeit euch allen

    -- jana 2004-10-18 09:21 UTC



    schönen tag dir

    wünscht

    jana
     

  7. #7
    broetchenfan broetchenfan ist offline Grünschnabel
    Registriert seit
    Oct 2004
    Beiträge
    3
    hallo lukas hier nochmal die jana

    also wie du das oben geschrieben hast (von wegen für jedem interpreten eine tabelle) kann das nicht funxen

    du schreibst , ich quote mal:

    <xsl:for-each select="mp3s/mp3">
    <xsl:value-of select="interpret"/>
    <table border="2">
    <tr>
    <td>Album</td>
    <td>Track</td>
    <td>Dauer</td>
    <td>KBitsS</td>
    </tr>

    aber ich glaube du mußt zum einen die xml struktur ändern, die ich geschickt habe ist einfach nur auf die mp3s /mp3 ausgelegt und du mußt es ja bzw. magst es ja für die interpreten haben und dann denke ich mußt du im stylsheet auch anderes definieren,
    also z.b. sagen
    hey den interpret in die tabellenüberschrift und dann unten drunter in den einzelnen tabellenzeilen bitte die angaben album interpret tracktitel,, länge etc.

    lg

    der broetchenfan
     

  8. #8
    Avatar von lukasS
    lukasS lukasS ist offline Mitglied Brokat
    Registriert seit
    Jun 2003
    Ort
    Bochum
    Beiträge
    264
    Danke dir Broetchenfan ,

    also fange ich von vorne an, d. h. mit der XML-Struktur. Zum Glück wird die XML automatisch erstellt

    Falls nochmal unklarheiten kommen, melde ich mich wieder.

    Danke nochmal!

    Schönen Tag!

    Lukas
     

Ähnliche Themen

  1. einfache Struts 2 Frage
    Von Ijaja im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 07.11.07, 10:50
  2. Einfache Frage zu Positionierung
    Von bisselbock im Forum CSS
    Antworten: 4
    Letzter Beitrag: 24.10.06, 22:05
  3. Einfache Frage zu Freehand?
    Von lraziest im Forum Vektor-Programme
    Antworten: 4
    Letzter Beitrag: 15.03.05, 12:33
  4. [Frage]einfache Navigationsleiste...
    Von Tabrizi im Forum Flash Plattform
    Antworten: 9
    Letzter Beitrag: 16.06.04, 00:15
  5. Einfache Frage zu Quellcode
    Von vlap im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 02.06.04, 11:23