Avatar billede gedebuk Nybegynder
06. december 2003 - 19:55 Der er 4 kommentarer og
1 løsning

XSL over kommentarer

Hejsa.

Jeg har en konfigurationsfil, hvor der i nogle elementer er skrevet en kommentar, som ses ud fra følgende eksempel på XML-filen:

<configuration>
    <language>
        <comment>Language configuration</comment>
        <value>dansk.xml</value>
    </language>
    <files>
        <comment>Where the other files are</comment>
        <images>
            <comment>Path to images</comment>
            <value>data/images/</value>
        </images>
        <template>
            <comment>Template path</comment>
            <value>data/templates/template1.xml</value>
        </template>
    </files>
    ........
</configuration>


Jeg vil gerne have en HTML-side (formatteret vha. XSL), hvis output er en tabel over alle elementerne i konfigurationen efterfulgt af en evt. kommentar. Bemærk at kommentarern hører til XML-elementet rækken over.

Der kan være x antal elementer under root-elementet og der kan være x antal niveauer herunder.

På forhånd tak,
Mads
Avatar billede trolle Nybegynder
06. december 2003 - 20:13 #1
Hvad med:

<xsl:template match="configuration">
  <table>
    <xsl:apply-templates/>
  </table>
</xsl:template>


<xsl:template match="*[value && comment]">
  <tr>
    <td> <xsl:value-of select="value"/> </td>
    <td> <xsl:value-of select="comment"/> </td>
  </tr>
</xsl:template>

<xsl:template match="*[value]">
  <tr>
    <td> <xsl:value-of select="value"/> </td>
    <td> --- </td>
  </tr>
</xsl:template>
Avatar billede gedebuk Nybegynder
06. december 2003 - 20:24 #2
Det er ikke value, der skal udskrives; det er elementet en række over, f.eks. ved <language> skal der skrives:

language  Language configuration


/Mads
Avatar billede gedebuk Nybegynder
06. december 2003 - 20:26 #3
Og det er i øvrigt ikke sikkert, at elementet hedder "value". Det kan hedder hvad som helst.

/Mads
Avatar billede trolle Nybegynder
06. december 2003 - 21:19 #4
ok, hvad saa med en template der matcher alle der har en comment og udskriver navenet paa elemented:

<xsl:template match="*[comment]">
  <tr>
    <td> <xsl:value-of select="local-name()"/> </td>
    <td> <xsl:value-of select="comment"/> </td>
  </tr> 
</xsl:template>
Avatar billede gedebuk Nybegynder
06. december 2003 - 22:12 #5
Jep, den er i vinkel :-)

Et tillægsspørgsmål kunne være, om det kan lade sig gøre på en eller anden måde at bevare "træstrukturen", altså så man kan se, hvad hvert element hører under.
Men hvis det ikke er sådan lige til, er det her helt fint!

/Mads
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
Kurser inden for grundlæggende programmering

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