This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Copying and transforming/Recursion?
- To: xsl-list at mulberrytech dot com
- Subject: RE: Copying and transforming/Recursion?
- From: sara dot mitchell at ps dot ge dot com
- Date: Tue, 10 Oct 2000 16:21:20 -0400
- Reply-To: xsl-list at mulberrytech dot com
This may not be the most elegant, but I think you may want
to simply do apply-templates instead. For example (untested):
<xsl:template match="display">
<display>
<xsl:apply-templates/>
</display>
</xsl:template>
... do the same for <p> ...
<xsl:template match="input">
<xsl:element name="input>
<xsl:apply-templates select="@*"/>
</xsl:element>
</xsl:template>
<!-- recreate the attributes with known values -->
<xsl:template match="input/@type | input/@fieldname">
<xsl:attribute name="name(.)"><xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
<xsl:template match="input/@value">
<xsl:variable name="thisfield" select="."/>
<xsl:attribute name="name(.)">
<xsl:value-of select="preceding::submittedValue[@fieldname=$thisfield]"/>
</xsl:attribute>
</xsl:template>
This should work as long as the submittedValue will always precede the
input. If not, you may need to use another axis or the "//" selector
although that is much less efficient.
Sar
> -----Original Message-----
> From: Jeff Saylor [mailto:JSaylor@wizardfinance.com]
> Sent: Tuesday, October 10, 2000 11:45 AM
> To: XSL List (E-mail)
> Subject: Copying and transforming/Recursion?
>
>
> Starting with:
>
> <xml>
> <submittedValues>
> <submittedValue fieldname='title'>mr.</submittedValue>
> </submittedValues>
>
> <display>
> <p>
> title:<input type='text' fieldname='title' value=''/>
> </p>
> </display>
> </xml>
>
> Effectively, I want to use the <submittedValue>'s text with
> the matching (by
> @fieldname) <display>'s <input> to get:
>
> <display>
> <p>
> title:<input type='text' fieldname='title' value='mr.' />
> </p>
> </display>
>
> this involves outputting the <display> tag, and its contents, while
> selectively transforming an element within them - I can not
> figure out a way
> to do this. I am thinking copy-of and recursive templates
> would do the
> trick, but I can't get a grasp on how to do it...
>
> Much appreciation in advance for any and all input - cheers,
>
>
> Jeffrey J. Saylor
> Senior Internet Developer
> Wizard Finance Systems
> 707 Mendham Blvd., Suite 104
> Orlando, FL 32825
> Phone: (407) 262-9000 Ext 266
> Fax: (407) 262-9010
> Email: jsaylor@wizardfinance.com
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list