Subject:newbie requires help Author:Alan Shiers Date:08 Aug 2005 11:30 AM
Hi there,
I just recently downloaded the evaluation copy of Stylus Studio and I'm stuck on an example project which I've tried to keep as simple as possible.
My xml file is quite simple and looks like so:
<?xml version="1.0"?>
<!DOCTYPE Test SYSTEM "tests.dtd">
<test testid="16">
<qcount>4</qcount>
<answers>
<answer>
<item>Q1</item>
<value>
male
</value>
</answer>
<answer>
<item>Q2</item>
<value>
Ford
</value>
<value>
Chev
</value>
</answer>
<answer>
<item>Q3</item>
<value>
green
</value>
</answer>
<answer>
<item>Q4</item>
<value>
yellow
</value>
</answer>
</answers>
</test>
The thing to note here is that the <answer> node can have more than one child <value> nodes, as is the case with the answer to question 2 <item>Q2</item><value>Ford</value><value>Chev</value>.
I've been trying to create an xsl stylesheet for the xml file and so far it looks like this:
This stylesheet runs fine, but because there can be more than one <value> node in any given <answer>, I wanted to force a break between each value as it appears in HTML (somehow using the <br> tag) if there is more than one <value>. Is it possible to do if else conditions? Like
if(more than one value)
{
<td>><xsl:apply-templates select="value"/></td> + <br><br>
}
else
{
<td>><xsl:apply-templates select="value"/></td>
}
Subject:newbie requires help Author:Ivan Pedruzzi Date:08 Aug 2005 05:00 PM
Sure
The template matches the "value" element is called is response of
<xsl:apply-templates select="value"/>
The test in the if statement checks if the current element "value"
has a preceding sibling "value" if yes it means that we have more
then one element so we output the br to break from the previous one
then we output the current "value".