Altova Mailing List Archives>Archive Index >xsl-list Archive Home >Recent entries >Thread Prev - >Thread Next - Re: [xsl] Evaluate XPath from String [xsl] Evaluate XPath from StringTo: xsl-list@-----.------------.--- Date: 6/5/2009 4:56:00 PM 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 --~------------------------------------------------------------------ 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@l...> --~-- | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
