Thread [XML & XSLT] Lerne gerade, finde Fehler nicht (8 answers)
Opened by Thyrius at 2013-02-05 22:46

murphy
 2013-02-06 00:19
#165501 #165501
User since
2004-07-19
1776 articles
HausmeisterIn
[Homepage]
user image
Es sei das Namensraumpräfix xmlns:xsl="http://www.w3.org/1999/XSL/Transform" definiert. Der Tag xsl:if muss dann ein Attribut xsl:test haben, welches die Bedingung angibt, ein Attribut xsl:w20 ist vom Standard nicht vorgesehen — wenn Du einfach irgendwelche XML-Attribute erfindest, die XSLT nicht kennt, kann das nicht funktionieren ;-)

Also einfach in Zeile 16 des Stylesheets w20=... durch test=... ersetzen und der Code läuft!

Es ist natürlich noch die Frage, ob Du wirklich den Styleprocessor abbrechen willst, wenn ein zu großer Wert gefunden wird, wie Du das im Moment tust, oder ob es benutzerfreundlicher wäre, den Wert trotzdem in das Zieldokument zu übernehmen, aber vielleicht mit auffälliger Markierung. Das ginge dann zum Beispiel so:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?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>
<head>
<style type="text/css">
.value { font-size: 150% }
.good { color: green }
.bad { color: red }
</style>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>

<xsl:template match="wuerfelzahl">
<xsl:variable name="aktuellerwert" select="."/>
<p>
<xsl:choose>
<xsl:when test="$aktuellerwert &gt; 20">
<span class="bad value"><xsl:value-of select="." /></span>
(Zahl zu gross)
</xsl:when>
<xsl:otherwise>
<span class="good value"><xsl:value-of select="." /></span>
</xsl:otherwise>
</xsl:choose>
</p>
</xsl:template>

</xsl:stylesheet>
When C++ is your hammer, every problem looks like your thumb.

View full thread [XML & XSLT] Lerne gerade, finde Fehler nicht