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

Re: A few questions to the experts: functions, templat

Subject: Re: A few questions to the experts: functions, templates, loops
From: juggy@xxxxxxx
Date: Thu, 05 Sep 2002 15:09:48 +0200
loop function
Hi,

Thanks for your help! But what do you mean by "no one ever recognizes the quotes..."? Irony?

Regards,
Juggy

Jarno.Elovirta@xxxxxxxxx wrote:
Hi,


1.) How do I write my own functions with return values? For example, I
have a function that traverses the tree, searches a page by id and
delivers the corresponding path-name. My solution up until now has been
to create a template (please, don't laugh at me - I know this is most
probably the worst possible approach) which delivers the name as text.
This works, but... it's sort of.. akward


"It is not a laughing matter". (No one ever recognizes the quotes I use, sigh.) You can't define functions in XSLT 1.0, unless you use an extension mechanism, e.g. one described by the friendly folk at EXSLT <http://exslt.org>. Saxon 7.x partially implements XSLT 2.0 if you really really really want to define your own functions (in XSLT).


2.) I would like to have several templates matching e.g. "/test", but
for different purposes. Since I have some apply-templates they tell me
it's ambigous (which it of course is). Is there a way to elegantly
parameterize this?


<http://www.w3.org/TR/xslt#modes>

3.) Is there a way to pass parameters when calling a xml-file? Like
calling "http://...file.xml?param=1" and the xslt-script can evaluate
that parameter? I only found a way to do it via an xslt-processor, and
since I can't use scripts/cgis/processors... on my server it has to be
done via the xml/xslt purely.


Well... no, you have to use the API that your XSLT processor offers you.


4.) Sometimes I couldn't use templates, e.g. because of ambigouty. Then
I usually used the xsl:for-each statement to select the corresponding
node (e.g. select="/pages/page"). But I don't need the
loop-functionality - is there a simpler statement to do so?


To select nodes and process them? You could try to use different priorities <http://www.w3.org/TR/xslt#section-Defining-Template-Rules> on you templates, if that would work for you. Anyhow, xsl:for-each is no more a "loop" than using xsl:apply-templates and xsl:template is.


5.) Is there a way to "break out" of a loop?


If the "loop" is a recursive template, yes. If you're talking about xsl:for-each, no; xsl:for-each is not a loop. Try only selecting the nodes you want to process instead.


6.) How do I enter new data in an existing xml-file using saxon? I
didn't find any short, easy examples on that. Can anyone point me to a
source, please?


Use a buffer to output you serialized results and overwrite the original file.

Jarno

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.