- From: Norman Walsh <ndw@nwalsh.com>
- Date: Mon, 29 Jun 2009 08:26:40 -0400
- To: XProc Dev <xproc-dev@w3.org>
- Message-ID: <m2vdmfw7i7.fsf@nwalsh.com>
James Sulak <jsulak@gmail.com> writes:
> Is this a bug, or am I missing something?
>
> <p:declare-step xmlns:p="http://www.w3.org/ns/xproc">
>
> <p:output port="result" primary="true"/>
>
> <p:option name="foo" select="'data'"/>
>
> <p:identity>
> <p:input port="source">
> <p:inline>
> <root>This is some text.</root>
> </p:inline>
> </p:input>
> </p:identity>
>
> <p:string-replace match="root//text()" replace="replace(., 'text', $foo)"/>
The way you've written it, you're asking the p:string-replace step to
evaluate the string-replace. That won't work because the variables aren't
in-scope inside the step. You want this:
<p:string-replace match="root//text()"
<p:with-option name="replace"
select="concat('replace(., "text", '", $foo, "')")/>
Now the XProc processor expands teh value of $foo and passes it to
string-replace.
A bit ugly, but...
Be seeing you,
norm
--
Norman Walsh <ndw@nwalsh.com> | The first step towards wisdom is
http://nwalsh.com/ | calling things by their right
| names.--Chinese Proverb
Received on Monday, 29 June 2009 12:27:20 UTC