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

Re: Dynamic XPath expression (I know it doesnt work in

Subject: Re: Dynamic XPath expression (I know it doesnt work in XSLT1.0)
From: Matt Dittbenner <mbditt@xxxxxxxxxxxxxxxxx>
Date: Thu, 26 Aug 2004 14:12:21 -0500
dynamic rowspan with xsl
We have tested the evaluate function in saxon and it seems to run with no detectable slow down.

We are having an issue using a global variable in the string. Here is the code:
-------
<xsl:variable name="path" select="@path"/>
<xsl:copy-of select="saxon:evaluate(concat('$contentDoc', $path))"/>
---------


This is what saxon returns:
---------
Warning: org.xml.sax.SAXParseException: Using original entity definition for "&quot;".
Warning: org.xml.sax.SAXParseException: Using original entity definition for "&amp;".
Warning: org.xml.sax.SAXParseException: Using original entity definition for "&lt;".
Warning: org.xml.sax.SAXParseException: Using original entity definition for "&gt;".
Warning: org.xml.sax.SAXParseException: Using original entity definition for "&apos;".
Error at copy-of on line 107 of file:/var/www/localhost/site_system/master/data/cihost.com/transformation/layout.xsl:
Variable $contentDoc has not been declared
Transformation failed: Run-time errors were reported
-------


It seems that the variable $contentDoc is not accessible from wherever it's being evaluated.

Here is where we declare the variable:
--------
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:pd="http://www.plauditdesign.com/pd"
xmlns:saxon="http://saxon.sf.net/"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output
method="xml"
version="1.0"
encoding="iso-8859-1"
indent="no"
omit-xml-declaration="no"/>


   <!-- Incoming Content -->
   <xsl:param name="content"/>
   <xsl:variable name="contentDoc" select="document($content)"/>
-------

Last thing I should probably note is that we are using Saxon 7.8

Thanks,
Matt


Michael Kay wrote:


After some pretty exhaustive searching on the web, I have decided to join the list. I have noticed in the archives that more than one person has had the same issue as I have...how to create an XPath expression dynamically (from a variable, etc). The answer to these questions was to use any of the available *:evaluate functions. I would like to try to avoid that, since it increases the parse time so much....and that is not acceptable.

My question is if there is any other way to accomplish this, for example using XSLT2.0.


Sorry, but this is one feature that we decided not to put in XSLT 2.0. The only choices are really:

(a) using an xx:evaluate() extension function
(b) modifying the stylesheet before you execute it

I'm not sure why you think there is a performance problem with the extension
function approach?

Michael Kay

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.