Hiya
I've got an XML file which looks as follows:
<PolicyExtension>
<bCharged>false</bCharged>
<lID>5</lID>
<sDesc>text</sDesc>
</PolicyExtension>
<PolicyExtension>
<bCharged>false</bCharged>
<lID>9</lID>
<sDesc>text</sDesc>
</PolicyExtension>
<PolicyExtension>
<bCharged>false</bCharged>
<lID>3</lID>
<sDesc>text</sDesc>
</PolicyExtension>
<PolicyExtension>
<bCharged>false</bCharged>
<lID>2</lID>
<sDesc>text</sDesc>
</PolicyExtension>
If an attribute exists with a lID of 9 then I need to write <additional_windscreen_cov
er>Y</addi
tional_win
dscreen_co
ver> from within an XSLT script.
If this attribute does not exist then I need to write <additional_windscreen_cov
er>N</addi
tional_win
dscreen_co
ver>
So far, my code looks like:
<xsl:for-each select="/PoliciesAtDate/Po
licyAtDate
/Policy/Po
licyExtens
ions/Polic
yExtension
">
<xsl:choose>
<xsl:when test="lID = 9">
<additional_windscreen_cov
er>Y</addi
tional_win
dscreen_co
ver>
</xsl:when>
<xsl:otherwise>
<additional_windscreen_cov
er>N</addi
tional_win
dscreen_co
ver>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
This outputs
<additional_windscreen_cov
er>N</addi
tional_win
dscreen_co
ver>
<additional_windscreen_cov
er>Y</addi
tional_win
dscreen_co
ver>
<additional_windscreen_cov
er>N</addi
tional_win
dscreen_co
ver>
<additional_windscreen_cov
er>N</addi
tional_win
dscreen_co
ver>
because it obviously writes out the XML for each PolicyExtension it reads. I only need it to output Y or N depending on whether lID 9 exists or not.
I did also try the following code as using variables seemed like the most obvious solution:
<xsl:variable name="sWindscreen">N</xsl:
variable>
<xsl:for-each select="/PoliciesAtDate/Po
licyAtDate
/Policy/Po
licyExtens
ions/Polic
yExtension
">
<xsl:choose>
<xsl:when test="lID = 9">
<xsl:variable name="sWindscreen">Y</xsl:
variable>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<additional_windscreen_cov
er><xsl:va
lue-of select="$sWindscreen"/></a
dditional_
windscreen
_cover>
But, this gives an error that sWindscreen cannot be defined twice within the same template.
Please can anyone help?
Start Free Trial