XMLXSLXSL Övningar
[ Hem ] Allmänt ASP XML SQL ADO HTML CSS VB Java Design Karta
Grunderna XSL Dynamiska sidor XML i praktiken

XSL Övningar

Övning 8

I föregående kapitel fanns ett exempel med racerförare. Modifiera xsl filen så att alla finländska förare sätts in i en cell som har ljusblå bakrund och vit text.

Övning 9

Nedan finns två filer:

xml26_1.xml

<?xml version="1.0" encoding="iso-8859-1" ?> 
<?xml-stylesheet type="text/xsl" href="xml26_1.xsl"?>
<!DOCTYPE person [
   <!ELEMENT person (data*)>
   <!ELEMENT data (#PCDATA|lastname|firstname)*>
   <!ELEMENT lastname (#PCDATA)>
   <!ELEMENT firstname (#PCDATA)>
]>
<person>
   <data>
     Hans förnamn är <firstname>Kalle</firstname> och efternamnet är
     <lastname>Anka</lastname>
   </data>
   <data>
     Jag vet bara hans efternamn, som är <lastname>Persson</lastname>
   </data>
   <data>
     Vet inte alls vad han heter
   </data>
</person>
Öppna XML filen   Öppna XML konverterad till HTML (Även NS)

xml26_1.xsl

<?xml version='1.0' encoding="iso-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<!--  matcha roten -->
<xsl:template match="/">

<!--  vanlig html -->
<html>
   <head>
     <title>Mixed Mode XML och XSL</title>
     <style type="text/css">
       h4 {font-family:verdana,arial,sans-serif; color:#666666;}
     </style>
   </head>
   <body bgcolor="#FFFFFF" text="#000000">
     <h4>Detta är filens innehåll</h4>


   <!--  använd templates som matchar pattern person/data -->
   <!--  Obs. Måste inte loopa -->
  
   <xsl:apply-templates select="person/data" /><br />
  
   <!--  thats all, folks -->

   </body>
</html>
</xsl:template>

<!--  template för data noder -->
<xsl:template match="data">
   <!--  sätt in värdet -->
   <xsl:value-of select="." /><br />
   <!--  och kör templates på eventella undernoder -->
   <xsl:apply-templates />
   <hr />
</xsl:template>

<!--  template för firsname -->
<xsl:template match="firstname">
   Förnamn : <xsl:value-of /><br />
</xsl:template>

<!--  template för lastname -->
<xsl:template match="person/data/lastname">
   Efternamn : <xsl:value-of /><br />
</xsl:template>

</xsl:stylesheet>
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken

Fundera och besvara följande frågor:

  1. Gör konstruktionerna
    <xsl:value-of />
    och
    <xsl:value-of select="." />
    samma sak?

  2. Varför behöver man inte loopa för att få alla data-noder?

  3. Vad händer om du i filen ändrar från :
    <xsl:template match="data">
    <xsl:value-of select="." /><br />
    <xsl:apply-templates />
    </xsl:template>

    till

    <xsl:template match="data">
    <xsl:value-of select="." /><br />
    <xsl:apply-templates select="lastname" />
    <xsl:apply-templates select="firstname" />
    <hr />
    </xsl:template>

    Vad har detta för betydelse?

Övning 10

Tag kopior av ovanstående filer och modifiera dem så att du bara väljer den sista data noden.

Övning 11

Gör samma sak men välj endast första data noden.

Övning 12

Vi har redan sett några javascript-liknande funktioner på diverse ställen, bland annat number(rating) och end(). En vanlig situation i presentationssammanhang är formatering av nummer. Använd internet och/eller någon bra bok för att se om det finns möjligheter att formattera siffror och datum.

Skapa en valid XML fil och en XSL fil som demonstrerar skall innehålla minst följande:
- formatering av nummer med tusenavdelare och två decimaler.
- formatering av datum

Du avgör själv hur stor eller liten fil som används för att kunna testa detta. XML filen bör ha en DTD och XSL filen behöver inte vara så märkvärdig.

Övning 13

I övning 7 på sidan xml12.asp så skapade du ett förslag till en DTD för en vald websida. Gör nu resten, d.v.s skapa en XML fil som innehåller datat på sidan samt en XSL som kan visa sidan. Du får strippa bort eventuella rent dekorativa element, men övrig information måste finnas kvar. Använd Mixed Mode XML. (Skyll dig själv om du valde en för svår sida i Övning 7 - du hinner göra om den innan jag samlar in övningarna.) Du vill kanske även ta en titt på sidan xml_ex1.asp...
(Jag har avvaktat lite för att se om någon skulle fråga om hur man får templates satt på sådant som inte är noder, men överskattade tydligen er fantasi...)

Övning 14

Gör en alternativ XSL till XML filen i Övning 13. Denna XSL fil skall bara visa de väsentliga sakerna i filen, d.v.s alla taggars information men inte brödtexten (Se Texten om Mixed Mode XML)

  xsl:apply-templatesXML versioner
XSL
XSL i praktiken
XSL loopar
XSL programmering
XSL patterns
Patterns exempel
Programkoden
xsl:if
xsl:choose
xsl:for-each
xsl:apply-templates
XSL Övningar
XML versioner
Microsofts lösning
Nummer och datum
Typexempel för XSL ...


Top
< xsl:apply-templates XML versioner>
© Anders Enges, Vörå 2002  | 15.10.01 14:03 Visa asp koden