|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Map duplicate handling differences
Am 12/9/2022 um 4:51 PM schrieb Michael Mueller-Hillebrand michael.mueller-hillebrand@xxxxxxxxx: > > Hello Friday folks, > > I have noticed that the duplicate handling when constructing maps is > different and I would like to understand the reason. > > When using <xsl:map> with <xsl:map:entry> the transformer rejects > duplicate keys with a runtime error. > > <xsl:variable name="pairsMap" as="map(xs:string, xs:string)"> > > B B B <xsl:map> > > B B B B B B <xsl:for-each select="tokenize($pairsString, ';')"> > > <xsl:map-entry key="substring-before(., '=')" > select="substring-after(., '=')"/> > > </xsl:for-each> > > B B B </xsl:map> > > </xsl:variable> > > When using map:merge() without any extra options it uses > duplicates:use-first (I learned I can turn on brejectb or buse-lastb > or bcombineb): > > <xsl:variable name="pairsMap" as="map(xs:string, xs:string)" > > select="map:merge( > > B B B B B B B B B B B for $t in tokenize($pairsString, ';') > > B B B B B B B B B B B B B B B B return map:entry(substring-before($t, '='), > substring-after($t, '=')))"/> > > Have I overlooked a way to define options in the xsl:map case? > > Or is this a subtle way to get us to move to inline XPath? > XSLT 4 is going to remedy that shortcoming, see https://qt4cg.org/specifications/xslt-40/Overview-diff.html#duplicate-keys and <!-- Category: instruction --> <xsl:map B B on-duplicates? =expressionB > B B <!-- Content:sequence-constructor--> </xsl:map>
|
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
|

Cart








