|
Subject: Re: [xsl] variable holding a xml document created by xslt From: "Robert Van Gemert" <rcvangemert@xxxxxxxxxxxxxxxx> Date: Sun, 11 Apr 2004 20:13:47 +1000 |
David,
Can I use something like this to build the list-
<xsl:template name="build-list">
<xsl:param name="list"/>
<xsl:choose>
<xsl:when test="not end of data...">
<xsl:variable name="item">
<xsl:element name="label">
<xsl:attribute name="x1">from the input xml</xsl:attribute>
<xsl:attribute name="x2">from the input xml</xsl:attribute>
</xsl:element>
</xsl:variable>
<xsl:call-template name="build-list">
<xsl:with-param name="list" select="$list+$item"
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<value-of select=$list/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
I just want to verfify the syntax of adding elements.
Thanks,
-RVG
----- Original Message -----
From: "M. David Peterson" <m.david@xxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Sunday, April 11, 2004 7:09 PM
Subject: RE: [xsl] variable holding a xml document created by xslt
> Hey Robert,
>
> In fact I believe I remember our conversation from last year. Im glad
> to see that the lookup table has been of some help to you. You are
> correct in how you would access the value of the variable. But in this
> particular case you are going to need to use the node-set function of
> msxsl to give you what you need. To do this you will need to declare
> the msxsl namespace as a part of your stylesheet decleration like so...
>
> <xsl:stylesheet version = "1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:msxsl="urn:schemas-microsoft-com:xslt"
> exclude-result-prefixes = "msxsl">
>
> Next, you will need to create a variable that contains the dynamic
> values you want.
>
> <xsl:variable name="getLookupValuesforRect">
> <xsl:element name="label">
> <xsl:attribute name="x1">100</xsl:attribute>
> <xsl:attribute name="x2">110</xsl:attribute>
> </xsl:element>
> </xsl:variable>
>
> Finally, create another variable that you will call the node-set
> function from within the select attribute. You will then you the method
> you describe to access its content.
>
> <xsl:variable name="get-rect"
> select="msxsl:node-set($getLookupValuesforRect)/>
>
> If the size of the xml tree was reasonable you could just use one
> variable like so:
>
> <xsl:variable name="get-rect" select="msxsl:node-set('<label x1="100"
> x2="110">')/>
>
> But its easy to see how this method could become unmanageable fairly
> quickly...
>
> Either way using "$get-rect/label/@x1" will get you the value of
> attribute x1.
>
> Hope this helps!
>
> Best regards,
>
> <M:D/>
>
> -----Original Message-----
> From: Robert Van Gemert [mailto:rcvangemert@xxxxxxxxxxxxxxxx]
> Sent: Sunday, April 11, 2004 2:47 AM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] variable holding a xml document created by xslt
>
> Thanks David,
>
> Confused? yep!
>
> You showed me the lookup idea last year and I use it now for constants
> but
> in this case the lookup list will change depending on what lables are in
> view, so the list needs to be created dynamically.
>
> I am using msxml4, I think you are suggesting that if I create a
> template
> that returns a xml fragment
>
> eg.
>
> <template name="get-rect"
> <xsl:value-of select>
> <lable>
> <xsl:attribute name="x1">100</xsl:attribute>
> <xsl:attribute name="x2">110</xsl:attribute>
> <lable>
> </xsl:value-of select>
> </template>
>
> I can access this fragment using
>
> <xsl:variable name="lable-rect">
> <xsl:call-template name="get-rect"/>
> <xsl:variable>
>
> $lable-rect/@x1
>
> -RVG
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] variable holding a xml do, M. David Peterson | Thread | RE: [xsl] variable holding a xml do, M. David Peterson |
| RE: [xsl] variable holding a xml do, M. David Peterson | Date | RE: [xsl] variable holding a xml do, M. David Peterson |
| Month |