Tema:
  - Mixed Mode XML
- Attribut
- xsl:choose
xml_ex_1.xml
<?xml version="1.0" encoding="iso-8859-1" ?>  
<?xml-stylesheet type="text/xsl" href="xml_ex_1.xsl"?>
<!DOCTYPE person [
  	<!ELEMENT person (data*)>
  	<!ELEMENT data (#PCDATA | lastname | firstname )*>
  	<!ELEMENT lastname (#PCDATA)>
  	<!ELEMENT firstname (#PCDATA)>
  	<!ATTLIST firstname typ ( smeknamn | verkligt ) #IMPLIED>
]>
<person>
  	<data>
    		Hans förnamn är <firstname typ="verkligt">Kalle</firstname>
    		och efternamnet är <lastname>Anka</lastname>
  	</data>
  	<data>
    		Han kallades <firstname typ="smeknamn">Svullo</firstname>
  	</data>
  	<data>
    		Jag vet bara hans efternamn, som är <lastname>Persson</lastname>
  	</data>
</person>
 Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
Öppna XML filen   Öppna XML konverterad till HTML (Även NS)
xml_ex_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</title>
    		</head>
    		<body bgcolor="#FFFFFF" text="#000000">
  	
    		<xsl:apply-templates select="person/data" /><br />
  	
    		</body>
  	</html>
  	</xsl:template>
  	<!--  template för data noder -->
  	<xsl:template match="data">
    		<!--  
      			kör templates på eventella undernoder 
      			och även  för texten
    		-->
    		<xsl:apply-templates />
    		<hr />
  	</xsl:template>
  	<!--  template för text() - dvs. sådant som inte är noder -->
  	<xsl:template match="text()">
    		<font face="courier"><xsl:value-of select="." /></font>
  	</xsl:template>
  	<!--  template för firstame och lastname -->
  	<xsl:template match="firstname | lastname">
    		<font face="verdana,arial,sans-serif">
    		<xsl:choose>
      			<xsl:when test="@typ[.='smeknamn']">
        				<b style="color:blue"><i><xsl:value-of select="." /></i></b>
      			</xsl:when>
      			<xsl:otherwise>
        				<b style="color:blue"><u><xsl:value-of  select="." /></u></b>
      			</xsl:otherwise>
    		</xsl:choose>
    		</font>
  	</xsl:template>
</xsl:stylesheet>
 Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken
Observera användningen av text() som matchar text som inte hör 
  till någon specifik nod.