  | |  | Problems using xsl:if with Xalan/JSP | Problems using xsl:if with Xalan/JSP 2003-03-25 - By Robinson Simon
I have some XML and XSLT similar to the code below. I am trying to select as in this example all FirstName elements with the first name Simon for example, then show all the ClassName elemnts that the person studies. I want to pass in a parameter from a web page using JSP that does the transform and then sends the value back to the browser.
The problem is when I run the transform through XMLSpy it picks up the value of the parameter and does the search fine, as in the ouput below
Start of transform ClassId French Start of transform StudentName with new testSimonSimon <--- The transform through XMLSpy has done the <xsl:if> correctly ---> Start of transform ClassId German Start of transform StudentName with new testSimon Start of transform ClassId German Start of transform StudentName with new testSimon
But when I run the transform through using a JSP to pass in the parameter it picks up the value ok in the stylesheet as the output confirms but it does not use the value of the parameter anywhere in the <xsl:if> and the test fails as the output below shows. I have tried different ways to find the correct element but when I use the value of the parameter all fails.
Start of transform ClassId French Start of transform StudentName with new testSimon <--- The transform through the JSP has picked up the parameter but does not do the <xsl:if> correctly ---> Start of transform ClassId German Start of transform StudentName with new testSimon Start of transform ClassId German Start of transform StudentName with new testSimon
I am using j2sdk1.4.1_01, tomcat 4.0.3,xalanj2.0.1.
<?xml version="1.0" encoding="UTF-8"?> <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" indent="yes"/> <xsl:param name="attributeid">Simon</xsl:param> <xsl:template match="* | /"/> <xsl:template match="/"> <xsl:apply-templates select="LectureList"/> </xsl:template>
<xsl:template match="LectureList"> <br/> <br/> <xsl:apply-templates select="ClassId"/> </xsl:template>
<xsl:template match="ClassId"> <xsl:text>Start of transform ClassId</xsl:text> <br/> <xsl:value-of select="ClassName"/> <xsl:apply-templates select="StudentName"/> </xsl:template>
<xsl:template match="StudentName"> <br/> <xsl:text>Start of transform StudentName with new test</xsl:text> <xsl:apply-templates select="FirstName"/> <xsl:copy-of select="$attributeid"/> <br/> </xsl:template>
<xsl:template match="FirstName[.=$attributeid]"> <xsl:value-of select="."/>
</xsl:template> </xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?> <!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) --> <!-- Created by sro on 21 March 2003, 09:56 --> <LectureList> <ClassId> <ClassName>French</ClassName> <StudentName> <FirstName>Simon</FirstName> <LastName>Robinson</LastName> </StudentName> </ClassId> <ClassId> <ClassName>German</ClassName> <StudentName> <FirstName>John</FirstName> <LastName>Snow</LastName> </StudentName> </ClassId> <ClassId> <ClassName>German</ClassName> <StudentName> <FirstName>Mary</FirstName> <LastName>Dillinger</LastName> </StudentName> </ClassId> </LectureList>
|
|
 |