Subject: Re: [xsl] Losing xsl:param values within a called template for-each loop From: Greg Faron <gfaron@xxxxxxxxxxxxxxxxxx> Date: Mon, 13 May 2002 16:22:27 -0600 |
Here is the sample xml doc... <CrfActionGroup destinationLogicalId="I3"> <CommandReference refid="CMD1"/> <KeyGroup id="K1" keyGroupType="PARTY"> <!-- get the keygroup where its AlternateId child has a @sourceLogicalID equal to I3--> <AlternateId value="2001-07-25-00.00.00.003170" sourceLogicalId="ANO" state="exists"/> <AlternateId value="826620515239830" sourceLogicalId="I3" state="exists"/> <!-- pass the @value to the named template--> <UUID>1155</UUID> </KeyGroup> <KeyGroup id="K2" keyGroupType="PARTY"> <AlternateId value="2001-07-25-00.00.00.003171" sourceLogicalId="ANO" state="exists"/> <AlternateId value="953689412580434" sourceLogicalId="I3" state="exists"/> <UUID>1154</UUID> </KeyGroup> </CrfActionGroup> <COMMAND> <AddPelpPolicyRequest cmdType="request" cmdMode="alwaysRespond"> <Individual> <KeyGroup refid="K1"/> <!-- need to match this refid value to the id value of the CrfActionGroup KeyGroup element seen above--> <partyId/> <!-- this needs to become the value of the @value for the <AlternateID> element where its @sourceLogicalID = I3 as seen above--> </Individual> <LineOfBusiness> <PartyRole> <KeyGroup refid="K1"/> <partyId>PARTY ID</partyId> </PartyRole> <PartyRole> <KeyGroup refid="K2"/> <partyId/> </PartyRole> </LineOfBusiness> </AddPelpPolicyRequest> </COMMAND>
Here is the xsl template....
<xsl:template match="KeyGroup"> <!-- search through first set of KeyGroup elements -->
<xsl:for-each select="AlternateId"> <xsl:if test=" @sourceLogicalId = 'I3' "> <!-- get its child with the attribute value specified--> <xsl:call-template name="command"> <!-- if the test is true, call the named template passing the parms--> <xsl:with-param name="keyvalue" select="@value"/> <xsl:with-param name="keyid" select="../@id"/> </xsl:call-template> </xsl:if> </xsl:for-each> </xsl:template>
<xsl:template name="command" match="COMMAND">
<xsl:param name="keyvalue"/> <xsl:param name="keyid"/> <xsl:if test="($keyvalue != '') and ($keyid != '')"> <!-- TEST VALUES These output correctly here--> <xsl:value-of select="$keyvalue"></xsl:value-of> <xsl:value-of select="$keyid"></xsl:value-of> <xsl:for-each select="descendant::KeyGroup"> <!--search the KeyGroup descendants of the COMMAND element--> <!-- LOSING THE PARAM VALUES HERE--> <xsl:if test="@refid = '$keyid'"> <!-- if the refId = parm passed in, then output the other parm value passed in--> partyId <xsl:value-of select="$keyvalue"/> </xsl:if> </xsl:for-each> </xsl:if> </xsl:template>
Greg Faron Integre Technical Publishing Co.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Losing xsl:param values withi, CROFT, MICHAEL | Thread | Re: [xsl] Losing xsl:param values w, J.Pietschmann |
[xsl] IE Error Message, Joel Konkle-Parker | Date | Re: [xsl] IE Error Message, Greg Faron |
Month |