How to pass an XPath as a param and evaluate it?
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:
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
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format