Thomas J.S.: <title>...</title> in einem xhtml-document

Beitrag lesen

Hallo,

Hier die Beispieldateien:

Datei TEST.XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>TEST XHTML DOKUMENT</title>
  </head>
  <body>
    <p>Hier steht eigentlich der normale Text!</p>
  </body>
</html>

Das das eigentlich keine XML-Datei ist, ist dir schon klar?
Das ist ein "stink normaler" XHTML-Datei wozu du eigentlich überhaupt keine XSL brauchst.

Datei TEST.XSL

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

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

</xsl:stylesheet>

Als Anzeige im Browser-Fenster (T-Online Browser):

TEST XHTML DOKUMENTHier steht eigentlich der normale Text!

Was ist da Falsch ??????????????

Im Grunde nichts. Es passiert genau das was passieren soll: du hast im <html> mit xsl:apply-templates/ einfach alle Text die in der Seite stehen hineingeholt, weil eben in diesem fall bei dir nur die build-in Templates greifen.

<xsl:template match="/">
    <html>

<head><title><xsl:value-of select="html/head/title" /></title></head>
<body>

<xsl:apply-templates select="body" />

</body>

</html>
  </xsl:template>

<xsl:template match="p">
<p><xsl:value-of select="." /></p>
</xsl:template>

usw.

erkennst du jetzt, warum es wirklich überfüssig ist deine XHTML-Seite mit XSLT zum selben XHTML zu transformieren?

Grüße
Thomas