Hi there.
I'm wondering about processing strings as XPaths in XSLT2. I know
about saxon:evaluate() but what I'm wondering is a way to do this in
XSLT2 _without_ extensions. (A possible answer is "don't do it, way
too hard, just use the extensions".)
So if I was using saxon:evaluate() I might do something like:
====input===
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<paths>
<path>/foo/blort/wibble[1]</path>
<path>/foo/blort/wibble[2]</path>
<path>//*[(_at_)xml:id='wibNum2']/splat/@att</path>
</paths>
<blort>
<wibble>test text 1</wibble>
<wibble>Another wibble </wibble>
<wibble xml:id="wibNum2">This is <splat att="value1">a
test</splat></wibble>
</blort>
</foo>
====
and a script like:
====xsl===
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0" xmlns:saxon="http://saxon.sf.net/"
exclude-result-prefixes="#all">
<xsl:output indent="yes"/>
<xsl:template match="/foo">
<foo>
<xsl:for-each select="paths/path">
<out><xsl:value-of select="saxon:evaluate(.)"/></out>
</xsl:for-each>
</foo>
</xsl:template>
</xsl:stylesheet>
====
I should get the output:
====output===
<?xml version="1.0" encoding="UTF-8"?>
<foo>
<out>test text 1</out>
<out>Another wibble </out>
<out>value1</out>
</foo>
====
Hurrah, it works. But I guess my question is how hard is it to create
fn:myEvaluate() in XSLT2 which does basically the same thing?
Thanks for any suggestions.
-James
--~------------------------------------------------------------------
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>
--~--