This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: creating XML in a servlet
- From: "Najmi, Jamal" <Jamal dot Najmi at Artesia dot com>
- To: "'Jeni Tennison'" <jeni at jenitennison dot com>, "Najmi, Jamal" <Jamal dot Najmi at Artesia dot com>
- Cc: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 8 Apr 2002 02:54:51 -0400
- Subject: RE: [xsl] creating XML in a servlet
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Jeni,
Thanks a lot for the much needed detailed response!! I will definitely
look into Cocoon. If I may ask one more question - as I am new to XSL so
this is a very basic question: in order for me to accomplish what I want to
accomplish, servlet needs to be able to interact with the XSL and get the
output of XSL back and build XML in memory. Is this possible? I mean is
there API defined through which Java can interact with the XSL back and
forth.
Thanks!!
Jamal
-----Original Message-----
From: Jeni Tennison [mailto:jeni@jenitennison.com]
Sent: Saturday, April 06, 2002 3:23 PM
To: Najmi, Jamal
Cc: 'xsl-list@lists.mulberrytech.com'
Subject: Re: [xsl] creating XML in a servlet
Hi Jamal,
> I want to know if it is possible to create chunks of XML based on
> certain parameters that a servlet receives from a form submitted by
> a web client.
In principle, yes. This is possible in Cocoon, for example, provided
that you configure it correctly.
> For example if form parameter name = 'title', and value of this
> parameter is 'Football', then ask XSL to create the following chunk
> of XML:
>
> <title>Football</title>
In XSLT, the names of the parameters that a stylesheet uses must be
hardcoded into the stylesheet. So you could declare the $title
parameter:
<xsl:param name="title" />
and then pass in the value 'Football' for that title parameter, and
do:
<title>
<xsl:value-of select="$title" />
</title>
But you can't vary the name of the parameter.
On the other hand, you could have a general parameter called
'parameter', for example:
<xsl:param name="parameter" />
and then use some delimiter in the value of that parameter to create
an element with a value. You can then pull the parameter value into a
'name' and 'value' using substring-before() and substring-after()
functions. Then create the element with a particular name using an
attribute value template in the name attribute of the xsl:element
instruction.
So for example if the $parameter parameter was set to 'title:Football'
then you could create the title element with:
<xsl:element name="{substring-before($parameter, ':')}">
<xsl:value-of select="substring-after($parameter, ':')" />
</xsl:element>
Or have separate parameters for the name and value of the element.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list