[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] support for xpointer
Hi Stefan, On Fri, 19 Sep 2014 09:53:33 -0400 Stefan Seefeld <stefan@seefeld.name> wrote: > [...] > Ideally I would like to be able to encode the query in an attribute, > much as I would have preferred with xpointer, such as > > <listitem my:ref="*[@xml:id='foo']//d:listitem" /> > > However, I can't manage to extract the above "ref" into a variable and > concatenate that into a valid xpath expression inside a custom > stylesheet: > > <xsl:template match="*[@my:ref]"> > <xsl:variable name="ref" select="@my:ref" /> > <xsl:variable name=content select="document('dict.xml')//$ref" /> > ... > </xsl:template> > > It seems I'm misunderstanding something, as no matter how I spell the > above, I get XPath errors from xsltproc. Yes, as you try to dynamically evaluate a string as an XPath expression. This is not possible with standard XSLT 1.0 and 2.0. However, you could look into the dyn:evaluate() extension functions from the EXSLT initiative: http://exslt.org/dyn/functions/evaluate/index.html You may try this, although I haven't tested it: <xsl:template match="*[@my:ref]" xmlns:dyn="http://exslt.org/dynamic"> <xsl:variable name="ref" select="dyn:evaluate(@my:ref)" /> <xsl:variable name=content select="document('dict.xml')//$ref" /> ... </xsl:template> Unfortunately, very few XSLT 1.0 processors implement dyn:evaluate(). It works in xsltproc, but it's unlikely it will work for Saxon. > [...] -- Gruß/Regards, Thomas Schraitle
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]