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(_dot_)Fozzard(_at_)noaa(_dot_)gov>
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Date: 06/29/2011 01:13 AM
Subject: [xsl] 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(_dot_)fozzard(_at_)noaa(_dot_)gov
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--