Subject: Re: [xsl] Keeping result-document() from writing to a file more than once? From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 19 Apr 2019 15:10:45 -0000 |
If you construct map entries for each use and then combine them into a
single map using the "use-first" or "use-any" "duplicates" option then you can blindly process all the references and let the map-merge process produce a single list of elements, e.g.;
<xsl:variable name="use-entries" as="map(*)*"> <xsl:call-template name="find-all-conrefs"/> </xsl:variable>
The find-all-conrefs template generates maps, one for each id/element pair,
which you can create with xsl:map or using the literal map constructor: "map{$key : $value}".
$key)" as="element() "/>
Now make a single map:
<xsl:variable name="use-map" as="map(*)" select="map:merge($use-entries, map{ 'duplicates' : 'use-any'}" />
And then process the entries to produce the result docs:
<xsl:for-each select="map:keys($use-map)"> <xsl:variable name="key" select="." as="xs:string"/> <xsl:call-template name="make-result-doc"> <xsl:with-param name="key" as="xs:string" select="$key"/> <xsl:with-param name="key" as="element() " select="map:get($use-map,
Isn't that second parameter supposed to be named <xsl:with-param name="value" as="element() " select="map:get($use-map, $key)" as="element() "/> ?
</xsl:call-template> </xsl:for-each>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Keeping result-document(), Eliot Kimber ekimber | Thread | Re: [xsl] Keeping result-document(), Eliot Kimber ekimber |
Re: [xsl] Keeping result-document(), Eliot Kimber ekimber | Date | Re: [xsl] Keeping result-document(), Eliot Kimber ekimber |
Month |