[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Need an XPath expression which returns all xs:pa
On Thu, 2024-04-04 at 15:47 +0000, Roger L Costello costello@xxxxxxxxx wrote: > David Carlisle devised a brilliant approach: One way to make this approach easier to maintain is to use a variable, e.g. in XSLT <xsl:variable name="normalisations" as="element(change)*"> <change><from>\\.</from><to>.</to></change> <change><from>\s+</from><to></to> </xsl:variable> and write a recursive function or template to do the replacements. For those without the XPath 2 constraint, in XPath 3 you can do this: let $replacements := ( [ "a", "b" ], [ "c", "oy" ], [ "bb", "b"] ) return fold-left($replacements, "abc", function($so-far, $this) { replace($so-far, $this(1), $this(2)) }) using an array and fold-left. Sometimes i put the fold-left into a separate function, replace-all-from-array() or something, and also support a third item in each array, flags. liam -- Liam Quin,B https://www.delightfulcomputing.com/ Available for XML/Document/Information Architecture/XSLT/ XSL/XQuery/Web/Text Processing/A11Y training, work & consulting. Barefoot Web-slave, antique illustrations: B http://www.fromoldbooks.org
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|