![]() |
|
|
|||||||
![]() |
XML - XSL: putting a XSL value inside an html attribute? |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
I can't figure out how to do this because the tags have to be properly
nested... and I dont have much XSL experience. Say I'm generating an HTML tag in my XSL file, and for one of it's attributes, I want to put the value of an XSL tag... for example: XSL file... ...... <xsl:template match="/" <div class = "{value of XSL tag 'entry' goes here}" > hello world</div> </xsl:template> how would I do this? thanks in advance Kourosh |
|
|
|
|
#2 |
|
Posts: n/a
|
I presume you actually meant
<div class = "{value of XSL tag 'entry' goes here}"> hello world</div> The question is: What do you mean by "value of XSL tag 'entry'"? Depending on what value you're actually trying to obtain, you may be able to use an Attribute Value Template as here, or you may need to use <xsl:attribute> to create this attribute. |
|
|
|
#3 |
|
Posts: n/a
|
well yea my example up there wasnt accurate
this: <entry> <type>128</type> </entry> <entry>....</entry <entry>.... so in the XSL file, I have a template that looks at each 'entry' tag and creates an html DIV tag for it. As the div tag is created, I want the 'type' tag (inside each entry) to be used as its class name. is that more clear?? so for the first entry above, it would create something like <div class="128">some text here</div> |
|
|
|
#4 |
|
Posts: n/a
|
Sounds like what you want is something like
<xsl:template match="entry"> <div class="{type}">some text here</div> </xsl:template> or <xsl:template match="entry"> <div> <xsl:attribute name="class"> <xsl:value-of select="type"/> </xsl:attribute> <xsl:text>some text here</xsl:text> </div> </xsl:template> |
|
|
|
#5 |
|
Posts: n/a
|
BTW, the xsl:text in the second version was mostly for readability; I
could have written it as <xsl:template match="entry"> <div> <xsl:attribute name="class"> <xsl:value-of select="type"/> </xsl:attribute>some text here</div> </xsl:template> but that would tend to obscure the intent. |
|
|
|
#6 |
|
Posts: n/a
|
oh wow I didnt know it'd be that simple thanks! I'll try it out.
So the second example that you have... does that actually put the attribute inside the div tag? |
|
|
|
#7 |
|
Posts: n/a
|
Kourosh wrote:
> I can't figure out how to do this because the tags have to be properly > nested... and I dont have much XSL experience. Say I'm generating an > HTML tag in my XSL file, and for one of it's attributes, I want to put > the value of an XSL tag... for example: See http://xml.silmaril.ie/authors/makeup/ > XSL file... > ..... > <xsl:template match="/" > <div class = "{value of XSL tag 'entry' goes here}" > hello > world</div> > </xsl:template> > > how would I do this? <div class="{entry}"> But that presupposes that "entry" is a child element of the context node. If "entry" is somewhere else in the document, you have to give the XPath to it. ///Peter -- XML FAQ: http://xml.silmaril.ie/ |
|