Subject: [xsl] Re: Re: Re: EXSL's dyn:evaluate() and XALAN vs. xsl:use-attribute-sets From: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx> Date: Sun, 24 Aug 2003 18:25:35 +0200 |
I would prefer a more compact solution, avoiding the possibly long and difficult to maintain xsl:choose. Something like this: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:myAttribs="my:Attribs" exclude-result-prefixes="myAttribs"> <xsl:output method="html"/> <myAttribs:myAttribs> <test1 font-family="sans-serif" font-weight="bold"/> <spacer1 font-family="roman" font-weight="normal"/> </myAttribs:myAttribs> <xsl:variable name="vAttribs" select="document('')/*/myAttribs:*"/> <xsl:template match="text"> <p> <xsl:copy-of select="$vAttribs/*[name() = current()/@attribs]/@*"/> <xsl:apply-templates/> </p> </xsl:template> </xsl:stylesheet> When this transformation is applied on the following source.xml: <t> <text attribs="test1">XXX</text> <text attribs="spacer1">YYY</text> </t> the wanted result is produced: <p font-family="sans-serif" font-weight="bold">XXX</p> <p font-family="roman" font-weight="normal">YYY</p> Hope this helped. ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL <raphead@xxxxxxx> wrote in message news:8300.1061728037@xxxxxxxxxxxxxxxx > > >A simple example: Why not include an top-level element belonging to a > > > non-xsl > > >namespace and having the necessary attributes. Then you can just copy > them. > > > > > > > I thought about that but I don't think that this is an solution. Right! > I > > could dynamically > > decide depending on a parameter to do something - in case of copy: copy > some > > xml to the > > current position. But this won't fix my problem as I'm working with fo > and > I > > need exactly > > the behaviour of the use-attribute-sets parameter which creates > attributes > > from a XML-fragment. > > > > Now I thought about using call-template but it has the same limitation: > The > > name must be > > qname :-/ > > Then you'll gradually find that the same effect can be achieved with > xsl:apply-templates > > For details see: > > http://fxsl.sourceforge.net/articles/FuncProg/Functional%20Programming.html > > > I really doubt that in this concrete case you really need so much power, > as > I have not seen your source xml document and do not know what the > transformation must do. > I think I with Michaels and your hints, I got it! on every occurence of the relevant attribute, I'm caling a Template with the value of the attribute. The called template decides with a switch-case like structure what attributes to create: The called template looks like that. <xsl:template name="definitions"> <xsl:param name="selector"/> <xsl:choose > <xsl:when test="$selector='test1'"> <xsl:attribute name="font-family">sans-serif</xsl:attribute> <xsl:attribute name="font-weight">bold</xsl:attribute> </xsl:when> <xsl:when test="$selector='spacer1#"> <xsl:attribute name="font-family">sans-serif</xsl:attribute> <xsl:attribute name="font-weight">bold</xsl:attribute> </xsl:when> </xsl:choose> </xsl:template> Thanks for your help! > > ===== > Cheers, > > Dimitre Novatchev. > http://fxsl.sourceforge.net/ -- the home of FXSL > -- COMPUTERBILD 15/03: Premium-e-mail-Dienste im Test -------------------------------------------------- 1. GMX TopMail - Platz 1 und Testsieger! 2. GMX ProMail - Platz 2 und Preis-Qualitätssieger! 3. Arcor - 4. web.de - 5. T-Online - 6. freenet.de - 7. daybyday - 8. e-Post XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: Re: EXSL's dyn:evalua, raphead | Thread | Re: [xsl] Re: EXSL's dyn:evaluate(), David Carlisle |
[xsl] jaxp vs xalan, Neelam Checknita | Date | Re: AW: AW: [xsl] exclude result pr, Mark R. Diggory |
Month |