|
Subject: [xsl] Evaluate XPath from String From: James Cummings <james@xxxxxxxxxxxxxxxxx> Date: Fri, 5 Jun 2009 17:55:04 +0100 |
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>//*[@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
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] linkedin discussion of "c, Florent Georges | Thread | Re: [xsl] Evaluate XPath from Strin, Martin Honnen |
| Re: [xsl] Re: Determining whether n, Michael Ludwig | Date | Re: [xsl] Evaluate XPath from Strin, Martin Honnen |
| Month |