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

Re: How to pass an XPath as a param and evaluate it?

Subject: Re: How to pass an XPath as a param and evaluate it?
From: Hank Ratzesberger <hankr@xxxxxxxx>
Date: Tue, 28 Jun 2011 21:29:50 -0700
Re:  How to pass an XPath as a param and evaluate it?
Hi Rich,

 From the Saxon documentation:
http://www.saxonica.com/documentation/using-xsl/commandline.xml

java -jar/dir//saxon9he.jar [options] [params]

A/param/preceded by a leading plus sign (+) is interpreted as a filename
or directory. The content of the file is parsed as XML, and the
resulting document node is passed to the stylesheet as the value of the
parameter. If the parameter value is a directory, then all the
immediately contained files are parsed as XML, and the resulting
sequence of document nodes is passed as the value of the parameter. For
example,|+lookup=lookup.xml|sets the value of the stylesheet
parameter|lookup|to the document node at the root of the tree
representing the parsed contents of the file|lookup.xml|.

So you would need a file to pass the the complex content, anything that
is not a text value.

Best,
Hank


On 06/28/2011 04:13 PM, Richard Fozzard wrote:
Fellow XSLers,

How can I use a string param passed on the command line as an XPath?

E.g., if I have this XML:

<library>
     <book>
         <title>Bob</title>
     </book>
</library>

and I want to have a general-purpose XSL that I can pass an XPath to
output any desired XML fragment. So I tried this:

     <xsl:output method="xml" indent="yes"/>
     <xsl:param name="xpath"/>  <!-- passed on command line as a param -->

     <xsl:template match="/">
             <xsl:copy-of select="$xpath"/>
     </xsl:template>

passing xpath="/library/book[title='Bob']". But of course, it just
outputs this:

/library/book[title='Bob']

while I really wanted the node at that XPath:

<book>
       <title>Bob</title>
</book>

Is there a function or syntax in XSLT 1 or 2 that will evaluate the
XPath at run-time?

(BTW, I'm using SaxonPE 9.3 on Linux, if that matters.)

Thanks so much for any help!
--Rich

Richard Fozzard, Computer Scientist
   Geospatial Metadata at NGDC: http://www.ngdc.noaa.gov/metadata

Cooperative Institute for Research in Environmental Sciences (CIRES)
Univ. Colorado&  NOAA National Geophysical Data Center, Enterprise Data Systems
325 S. Broadway, Skaggs 1B-305, Boulder, CO 80305
Office: 303-497-6487, Cell: 303-579-5615, Email: richard.fozzard@xxxxxxxx



--
Louis (Hank) Ratzesberger
sopac.ucsd.edu

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.