Hallo Thomas,
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.
<?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="stdyDscr" />
<xsl:apply-templates select="fileDscr" />
<xsl:apply-templates select="dataDscr" />
</body>
</html>
</xsl:template>
<xsl:template match="stdyDscr">
Title: <i><xsl:value-of select="citation/titlStmt/titl" /></i>
<p>Subtitle: <i><xsl:value-of select="citation/titlStmt/subTitl" /></i></p>
<xsl:for-each select="citation/rspStmt/AuthEnty">
<p>Primary Investigator(s): <i><xsl:value-of select="." />, </i></p>
</xsl:for-each>
<p>Producer Data Collection: <i><xsl:value-of select="citation/prodStmt/producer" /></i></p>
<p>Funding Agency: <i><xsl:value-of select="citation/prodStmt/fundAg" /></i></p>
<p>Depositor: <i><xsl:value-of select="citation/distStmt/depositr" /></i></p>
<p>Date of Deposit: <i><xsl:value-of select="citation/distStmt/depDate" /></i></p>
<p>Topic Classification: <i><xsl:value-of select="stdyInfo/subject/topcClas" /></i></p>
<p>Abstract: <i><xsl:value-of select="stdyInfo/abstract" /></i></p>
<p>Date of Collection: <i><xsl:value-of select="stdyInfo/sumDscr/collDate" /></i></p>
<p>Universe: <i><xsl:value-of select="stdyInfo/sumDscr/universe" /></i></p>
<p>Notes: <i><xsl:value-of select="stdyInfo/notes" /></i></p>
Data Collectors:
<xsl:for-each select="method/dataColl/dataCollector">
<p><i><xsl:value-of select="." /></i></p>
</xsl:for-each>
<p>Sampling Procedure: <i><xsl:value-of select="method/dataColl/sampProc" /></i></p>
<xsl:apply-templates select="fileDscr" />
</xsl:template>
<xsl:template match="fileDscr">
<p>Type of File: <i><xsl:value-of select="fileTxt/fileType" /></i></p>
</xsl:template>
<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>
<p>Width: <i><xsl:value-of select="var/location/@width" /></i></p>
<p>Variable Group Label: <i><xsl:value-of select="var/labl" /></i></p>
<p>Literal Question: <i><xsl:value-of select="var/qstn/qstnLit" /></i></p>
<p>Backflow: <i><xsl:value-of select="var/qstn/backward" /></i></p>
<xsl:if test="var/@name='V38'">
<xsl:for-each select="var/catgry">
<i><xsl:value-of select="concat(catValu,'. ',txt)" /></i><br />
</xsl:for-each>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
hallo Birgit, Thomas
Vielleicht steht das <xsl:if ...> nur an falscher Stelle. Ich weiß es nicht. Fällt Dir dazu noch etwas ein?
poste bitte deine xsl datei.
So hat es bei mir mit der genannten test.xml funktioniert:
<xsl:if test="dataDscr/var/@name='V38'">
ich hätte es eher mit
<xsl:if test="dataDscr/var[@name='V38']"> versucht.
grüße
thomas (j.s.)