[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Parameter Sorting Problem With Xalan

Subject: Re: Parameter Sorting Problem With Xalan
From: "Rob Lugt" <roblugt@xxxxxxxxx>
Date: Thu, 14 Jun 2001 18:08:07 +0100
xsl sort parameter problem
Rechell,

I'm pleased to say this is an easy one to solve.  External parameters must
be declared at the top level, i.e. within the <xsl:stypesheet> element.
Just move your parameters up to there and you should be okay.

Regards
Rob Lugt
ElCel Technology
http://www.elcel.com/

----- Original Message -----
From: "Schwartz, Rechell R, NLCIO" <rrschwartz@xxxxxxx>
To: <XSL-List@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Thursday, June 14, 2001 5:43 PM
Subject:  Parameter Sorting Problem With Xalan


> Hello,
> I have been banging my head against the wall trying to sort with a
> parameter-based xsl stylesheet. I have tried the suggestions posted in
> previous e-mails on this subject as well as in articles on the Web, but I
> still can't get the sorting to work. Basically, I am trying to take an xml
> file and convert it to another xml file that is sorted based on a column
and
> sort order that are dynamically selected by the user. I pass the
parameters
> for the column name and sort order in as strings to the stylesheet using
the
> Tarsnformer's setParameter() method. The problem is that the stylesheet
> always uses the default values for the column names and the sort order,
> regardless of what I pass in as a parameter. Any help would be GREATLY
> appreciated.
> Rechell Schwartz
> Here is the code for how I set the parameters:
> public void sortXSL(String sortParameter, String sortOrder) throws
> TransformerException, TransformerConfigurationException,
> FileNotFoundException
> {
> TransformerFactory tFactory = TransformerFactory.newInstance();
> String xsl = "c:\\directoryname\\xmlStyleSheet.xsl";
> Transformer transformer = tFactory.newTransformer(new StreamSource(xsl));
> DOMResult domResult = new DOMResult();
> transformer.setParameter("sortcolumn",
sortParameter.trim().toUpperCase());
> transformer.setParameter("sortorder", sortOrder);
> transformer.transform(new DOMSource(document), domResult);
> document = (Document)domResult.getNode();
> }
> Here is the xsl stylesheet:
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="<http://www.w3.org/1999/XSL/Transform>"
> version="1.0">
> <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
> <xsl:template match="xml">
> <xml>
> <data>
> <xsl:apply-templates/>
> </data>
> </xml>
> </xsl:template>
> <xsl:template match="data">
> <xsl:param name="sortcolumn" select="'COLUMN1'"/>
> <xsl:param name="sortorder" select="'ascending'"/>
> <xsl:apply-templates select="row">
> <xsl:sort order="{$sortorder}" data-type="text"
> select="*[name()=$sortcolumn]"/>
> </xsl:apply-templates>
> </xsl:template>
> <xsl:template match="row">
> <xsl:copy-of select="."/>
> </xsl:template>
> <xsl:template match="columntype">
> <xsl:copy-of select="."/>
> </xsl:template>
> <xsl:template match="truncated">
> <xsl:copy-of select="."/>
> </xsl:template>
> <xsl:template match="truncationsize">
> <xsl:copy-of select="."/>
> </xsl:template>
> </xsl:stylesheet>
> Finally, here is the xml file that is inputted to the stylesheet:
> <xml>
> <data>
> <row>
> <COLUMN1>ABC</COLUMN1><COLUMN2>ABC2</COLUMN2>
> </row>
> <row>
> <COLUMN1>GHI</COLUMN1><COLUMN2>GHI2</COLUMN2>
> </row>
> <row>
> <COLUMN1>DEF</COLUMN1><COLUMN2>DEF2</COLUMN2>
> </row>
> <columntype><COLUMN1>string</COLUMN1><COLUMN2>string</COLUMN2>
> <truncated>no</truncated>
> <truncationsize>1000</truncationsize>
> </data>
> </xml>
>
>
>
>
>  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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.