Problem mit title tag
Lars Regensburger
- xsl
Hallo,
Habe gerade mal nachgedacht als ich in selfHTML den Bereich xml anschaute,das muss ich auch mal probieren.
So ich habe eine DTD und eine xml gemacht.
Wie ich mich an die xsl machte kam auch schon das erste Problem:
In der xml kommt das Element anfang vor in diesem Element konnt unteranderem das Elemnt titel.
Wie bekomme ich den Text von dem titel Tag in die xsl in das Element title?
So habe ich es versucht geht nicht :( .
<?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>
<xsl:apply-templates />
</head>
<body>
</body>
</html>
</xsl:template>
<xsl:template match="anfang">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="titel">
<title><xsl:value-of select="." /></title>
</xsl:template>
</xsl:stylesheet>
Meine DTD:
<!-- Hauptelement 'anfang' -->
<!ELEMENT anfang (titel|text|grafik|alles)>
<!-- Attribute von Element 'anfang' -->
<!ATTLIST anfang
titel CDATA #REQUIRED
<!-- Element 'titel' fuer den Titel der Seite -->
<!ELEMENT titel (#PCDATA)>
<!-- Textelement muss Element 'inhalt' enthalten -->
<!ELEMENT text (inhalt)*>
<!-- Attribute von Element 'text' -->
<!ATTLIST text
ausrichtung (links|mitte|rechts) #REQUIRED
fett (ja|nein) #IMPLIED
kursiv (ja|nein) #IMPLIED
unterstrichen (ja|nein) #IMPLIED
<!-- Element 'inhalt' fuer Text -->
<!ELEMENT inhalt (#PCDATA)>
<!-- Element 'grafik' fuer Grafiken -->
<!ELEMENT grafik EMPTY>
<!-- Attribute von Element 'grafik' -->
<!ATTLIST grafik
pfad CDATA #REQUIRED
text1 CDATA #REQUIRED
text2 CDATA #REQUIRED
hoehe CDATA #REQUIRED
breite CDATA #REQUIRED
rahmen (ja|nein) #REQUIRED
<!-- Element 'alles' fuer verschiedene Daten -->
<!ELEMENT alles ANY>
Wie muss ich vorgehen um den Wert von titel in title zu bekommen?
Danke im Vorraus
Lars Regensburger
setzt mal bitte noch die xml rein.
Sorry!
Habe sie vergessen.
Hier die DTD die XSL und die XML:
DTD:
<!-- Hauptelement 'anfang' -->
<!ELEMENT anfang (titel|text|grafik|alles)>
<!-- Attribute von Element 'anfang' -->
<!ATTLIST anfang
titel CDATA #REQUIRED
<!-- Element 'titel' fuer den Titel der Seite -->
<!ELEMENT titel (#PCDATA)>
<!-- Textelement muss Element 'inhalt' enthalten -->
<!ELEMENT text (inhalt)*>
<!-- Attribute von Element 'text' -->
<!ATTLIST text
ausrichtung (links|mitte|rechts) #REQUIRED
fett (ja|nein) #IMPLIED
kursiv (ja|nein) #IMPLIED
unterstrichen (ja|nein) #IMPLIED
<!-- Element 'inhalt' fuer Text -->
<!ELEMENT inhalt (#PCDATA)>
<!-- Element 'grafik' fuer Grafiken -->
<!ELEMENT grafik EMPTY>
<!-- Attribute von Element 'grafik' -->
<!ATTLIST grafik
pfad CDATA #REQUIRED
text1 CDATA #REQUIRED
text2 CDATA #REQUIRED
hoehe CDATA #REQUIRED
breite CDATA #REQUIRED
rahmen (ja|nein) #REQUIRED
<!-- Element 'alles' fuer verschiedene Daten -->
<!ELEMENT alles ANY>
XSL:
<?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>
<xsl:apply-templates />
</head>
<body>
</body>
</html>
</xsl:template>
<xsl:template match="anfang">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="titel">
<title><xsl:value-of select="." /></title>
</xsl:template>
</xsl:stylesheet>
XML:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE CGI SYSTEM "cgi.dtd">
<?xml-stylesheet type="text/xsl" href="cgi.xsl" ?>
<anfang title="Meine">
<title>titel</title>
<text ausrichtung="mitte">
<inhalt>inhalt</inhalt>
</text>
<alles>alles</alles>
</anfang>
MfG
Lars Regensburger
Hi,
XSL:
<xsl:template match="titel">
^^
XML:
<title>titel</title>
^^ ^^
cu,
Andreas
Hallo Andreas,
Vielen Dank
Cu
Lars
Hallo,
Wie bekomme ich den Text von dem titel Tag in die xsl in das Element title?
Mal von deinem Tippfehler abgesehen ist es vielleicht besser so:
<xsl:template match="/">
<html>
<head>
<xsl:apply-templates select="title" />
</head>
<body></body>
</html>
</xsl:template>
Da du sonst alles, also auch alle andere templates auch im <head> aufrufst.
Alternative:
<head>
<xsl:value-of select="/dokumentElement/ElementenPfadBisHinZu/title" />
</head>
Grüße
Thomas
Alternative:
<head>
<xsl:value-of select="/dokumentElement/ElementenPfadBisHinZu/title" />
</head>
sollte natürlich so sein:
<head>
</title>
<xsl:value-of select="/dokumentElement/ElementenPfadBisHinZu/title" />
</title>
</head>
Grüße
Thomas
Hi,
Und ich habe meine DTD verändert.
Jetzt steht der Titel in dem Element <seite titel="titel"> das Elemant titel und anfang gibt es nicht mehr!
Wie mache ich jetzt das der Titel der des Attributes titel ist?
MfG
Lars
Hallo,
Und ich habe meine DTD verändert.
Jetzt steht der Titel in dem Element <seite titel="titel"> das Elemant titel und anfang gibt es nicht mehr!
Wie mache ich jetzt das der Titel der des Attributes titel ist?
Ich verstehe deine Frage nicht.
Wenn du meinst, dass du den Wert des "titel"-Attributes vom Element <seite> als HTML <title> ausgeben möchtest:
z.B.
<head>
<title>
<xsl:value-of select="/dokumentElement/ElementenPfadBisZu/seite/@titel" />
</title>
</head>
Grüße
Thomas