[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: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx>
Date: Wed, 29 Jun 2011 12:08:46 +0200
Re:  How to pass an XPath as a param and evaluate it?
> Is there a function or syntax in XSLT 1 or 2 that will evaluate 
> the XPath at run-time?

as others have stated, no for XSLT 1 or 2.


But if you use a XSLT 1 processor providing EXSLT dynamic package
you can simply use dyn:evaluate(...) for that:
http://exslt.org/dyn/functions/evaluate/index.html


Mit besten Gruessen / Best wishes,

Hermann Stamm-Wilbrandt
Developer, XML Compiler, L3
Fixpack team lead
WebSphere DataPower SOA Appliances
https://www.ibm.com/developerworks/mydeveloperworks/blogs/HermannSW/
----------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschaeftsfuehrung: Dirk Wittkopp
Sitz der Gesellschaft: Boeblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294 


From:   Richard Fozzard <Richard.Fozzard@xxxxxxxx>
To:     xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Date:   06/29/2011 01:13 AM
Subject:         How to pass an XPath as a param and evaluate it?



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

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.