|
Subject: Re: [xsl] Replace the portion of text that matches pattern: XPath versus SNOBOL From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 22 Mar 2025 12:28:10 -0000 |
Suppose that you want to only replace the first match, i.e., we want
"BELANCE." I do not think that there is any way to configure the XPath replace() function to "Replace only the first match."
It might be a bit convoluted but if you use analyze-string in XPath 3.1 you can then process only the first match with e.g.
B analyze-string('BALANCE', 'A')!*!(if (. is ../*:match[1]) then
replace(., 'A', 'E') else .)!data()=>string-join()Within XSLT it might be cleaner to use xsl:function to implement that with either xsl:analyze-string or with analyze-string and pushing its result through templates that then match on the first match to perform the replacement.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] Replace the portion of text t, Roger L Costello cos | Thread | Re: [xsl] Replace the portion of te, Martin Honnen martin |
| [xsl] Replace the portion of text t, Roger L Costello cos | Date | Re: [xsl] Replace the portion of te, Martin Honnen martin |
| Month |