Subject: [xsl] Forgive the noob From: "Bordeman, Chris" <Chris.Bordeman@xxxxxxxxxxxxxxxxx> Date: Fri, 8 Aug 2008 15:00:24 -0500 |
Hi guys, doing my first XSLT and need a bit of help. Basically, I'm transforming essentially a serialized object structure into a list of field-value pair nodes. There are a lot of complicated nodes I need to get at often, like the first address node under the first customer so I wanted to set up a bunch of variables and locate and and assign helper variables before I get into the template proper, which is itself very simple. I've written some functions to help w/ this and a single named template called "init" I call up front to set up the variables. The problem is when I assign to the variables inside my named template, they don't keep their value. I'd just add this stuff to the main template but I really need to split all this init stuff into an include file or something so they can be reused in other xslts. How can I make these variables visible where I need to use them? Here's a bit of what I'm doing now: <!-- declare global helper variables --> <xsl:variable name="buyerfullname" select="''"/> <xsl:variable name="buyeraddress" select="''"/> <xsl:variable name="buyeraddress1" select="''"/> <xsl:variable name="buyercsz" select="''"/> <xsl:variable name="buyerhomephone" select="''"/> <xsl:variable name="buyerblock" select="''"/> <xsl:template name="init"> <xsl:variable name="buyer" select="Contract/Borrowers/Borrower[NumOrder='1']"/> <xsl:choose> <xsl:when test="string($buyer) != ''"> <xsl:variable name="buyerfullname" select="fn:borrowerfullname($buyer)"/> <xsl:variable name="buyeraddress" select="$buyer/Addresses/BorrowerAddress[IsCurrent='true' and position()=1]"/> <xsl:variable name="buyeraddress1" select="fn:address1($buyeraddress)"/> <xsl:variable name="buyercsz" select="fn:csz($buyeraddress)"/> <xsl:variable name="buyerhomephone" select="$buyer/HomePhone/PhoneNumber"/> <xsl:variable name="buyerblock" select="string-join(($buyerfullname,$buyeraddress1,$buyercsz,$buyerhomep hone),fn:crlf())"/> </xsl:when> </xsl:choose> </xsl:template> <!-- create helper variables --> <xsl:call-template name="init"/> <!-- Main Template, generates FieldValuePairs --> <!-- ERRORS: I GET 'VARIABLE DOES NOT EXIST' ERRORS --> <xsl:template match="/"> <FieldValuePairs> <FieldValuePair field="BuyerState"> ERROR ---> <xsl:attribute name="value"><xsl:value-of select="$buyeraddress/State"/></xsl:attribute> </FieldValuePair> <FieldValuePair field="BuyerFullNameStreetCityStateZipPhone"> ERROR ---> <xsl:attribute name="value"><xsl:value-of select="$buyerblock"/></xsl:attribute> </FieldValuePair> </FieldValuePairs> </xsl:template> Thanks for any help! Chris Bordeman
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Processing 2 times the sa, Xmlizer | Thread | Re: [xsl] Forgive the noob, Don Smith |
Re: [xsl] Processing 2 times the sa, Xmlizer | Date | Re: [xsl] Forgive the noob, Don Smith |
Month |