Super Thomas, das klappt ja wirklich! Ich danke Dir!
Viele Grüße
Birgit
Hallo Birgit,
hier ist meine XS-Datei. Vielleicht fällt Dir ja noch etwas ein! Ich bekomme jdenfalls nicht das erwünschte Ergebnis mit der if-Anweisung.
<xsl:template match="dataDscr">
<p><u><xsl:value-of select="var/@name" /></u></p>
<p>Location: <i><xsl:value-of select="var/location/@StartPos" /></i></p>
so selectierst du immer den ersten 'var' innerhalb von 'dataDscr'
<xsl:if test="var/@name='V38'">
<xsl:for-each select="var/catgry">
dann selektiert jede 'var/catgry' und gibst du das ergebniss aus.
ich habe mal den sheet (hier abgekürz auf das wesentliche) umgeschriben:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="html"/>
<xsl:template match="codeBook">
<html>
<head>
<title>Test-Codebuch</title>
</head>
<body bgcolor="#008000">
<h1>Test-Codebuch</h1>
<xsl:apply-templates select="dataDscr" />
</body>
</html>
</xsl:template>
<xsl:template match="dataDscr/var">
<p><u><xsl:value-of select="@name" /></u></p>
<p>Location: <i><xsl:value-of select="location/@StartPos" /></i></p>
<p>Width: <i><xsl:value-of select="location/@width" /></i></p>
<p>Variable Group Label: <i><xsl:value-of select="labl" /></i></p>
<p>Literal Question: <i><xsl:value-of select="qstn/qstnLit" /></i></p>
<p>Backflow: <i><xsl:value-of select="qstn/backward" /></i></p>
<xsl:if test="@name='V38'">
<xsl:for-each select="catgry">
<i><xsl:value-of select="concat(catValu,'. ',txt)" /></i><br />
</xsl:for-each>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
grüße
thomas