Subject: Re: [xsl] Forgive the noob From: Don Smith <dsmith_lockesmith@xxxxxxxxx> Date: Fri, 8 Aug 2008 13:07:07 -0700 (PDT) |
Chris, If you can provide an example of the source XML as well as an example of what the target output should be, it would help. Don --- On Fri, 8/8/08, Bordeman, Chris <Chris.Bordeman@xxxxxxxxxxxxxxxxx> wrote: > From: Bordeman, Chris <Chris.Bordeman@xxxxxxxxxxxxxxxxx> > Subject: [xsl] Forgive the noob > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Date: Friday, August 8, 2008, 3:00 PM > 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 -> |
---|---|---|
[xsl] Forgive the noob, Bordeman, Chris | Thread | RE: [xsl] Forgive the noob, Bordeman, Chris |
[xsl] Forgive the noob, Bordeman, Chris | Date | RE: [xsl] Forgive the noob, Bordeman, Chris |
Month |