|
Subject: Re: From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx> Date: Fri, 3 Nov 2000 14:38:35 -0400 (EST) |
Kevin,
Just to turn around your message:
>I presume I use:
> <xsl:template match="fundgraph">
><xsl:with-param name="fundgraph">
><xsl:value-of select="...">
></xsl:param>
></xsl:template>
I don't think so. xsl:with-param is used to pass parameters into
templates. Perhaps you meant xsl:param (to match the end tag you've got in
that template), but neither of these instructions will do anything about
adding things to your output, which I think is what you want.
>I need the following xml to be converted to
>accommodate a graph applet. Hence, I need parameter
>tags for the fundgraph and fundvalue elements.
>
><!ELEMENT fundgraph (fundvalue*)>
> <!ATTLIST fundgraph startDate CDATA #REQUIRED>
> <!ATTLIST fundgraph endDate CDATA #REQUIRED>
> <!ATTLIST fundgraph fundName CDATA #REQUIRED>
>
> <!ELEMENT fundvalue EMPTY>
> <!ATTLIST fundvalue date CDATA #REQUIRED>
> <!ATTLIST fundvalue value CDATA #REQUIRED>
> <!ATTLIST fundvalue ordinal CDATA #REQUIRED>
>From what you've described, your input will look something like:
<fundgraph startDate="99-11-03" endDate="00-11-03" fundName="Technical">
<fundvalue date="99-11-03" value="0.58" ordinal="0" />
<fundvalue date="99-12-03" value="0.75" ordinal="0" />
...
</fundgraph>
and you want output might (complete guess here) look something like:
<object ...>
<param name="startDate" value="99-11-03" />
<param name="endDate" value="00-11-03" />
<param name="title" value="Technical" />
<param name="99-11-03" value="0.58" />
<param name="99-12-03" value="0.75" />
...
</object>
The param elements that you're creating in the output are not the same as
the xsl:param elements that are used within XSLT to pass values into the
stylesheet or into templates. The param elements in your output are in the
HTML namespace, whereas the xsl:param elements in the stylesheet are in the
XSLT namespace.
Just to start you off with the above example, you create elements within
your output either by using the xsl:element instruction:
<xsl:element name="object">
...
</xsl:element>
or by literally putting the element in the result tree:
<object>
...
</object>
So, to create the above, you could have a stylesheet that looks like:
<!-- set the output method to HTML -->
<xsl:output method="html" indent="yes" />
<xsl:template match="fundgraph">
<!-- create an object element -->
<object ...>
<!-- create the param elements from the fundgraph attribute values -->
<param name="startDate" value="{@startDate}" />
<param name="endDate" value="{@endDate}" />
<param name="title" value="{@fundName}" />
<!-- iterate over each of the fundvalue elements,
adding a param element for each -->
<xsl:for-each select="fundvalue">
<param name="{@date}" value="{@value}" />
</xsl:for-each>
</object>
</xsl:template>
I hope that gets you started. If not, feel free to post more details,
namely a sample bit of source XML and the output that you want to have
created from it.
Cheers,
Jeni
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [no subject], Kevin 'esq' Byrne | Thread | Formating Dates, Kuruvilla, Suresh |
| Re: [newbie]use of xsl:if {RE: XSL , Jeni Tennison | Date | RE: Including CDATA tags in XSLT..., Kay Michael |
| Month |