Birgit: XSL-Tabelle

Beitrag lesen

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.)