Subject: Re: [xsl] Making a lookup structure from multiple documents From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 12 Jun 2023 18:49:16 -0000 |
On 6/12/2023 8:33 PM, rick@xxxxxxxxxxxxxx wrote: > > I am missing something fundamental here I think. My accumulator is > collecting the values from each topic separately, but I want it to > accumulate the values from the entire hierarchy before I use them. > Here is my output: > Accumulator, like keys, work on a per document basis. That is why in my example I had some code doing e.g. B <xsl:accumulator name="lookup" as="map(*)" initial-value="map{}"> B B <xsl:accumulator-rule match="*[@href[matches(.,'(dita(map)?|xml)$','i')=true()][doc-available(.)]]" > B B B <xsl:variable name="collected" as="map(*)*"> B B B B B <xsl:apply-templates select="doc(@href)/*"/> B B B </xsl:variable> B B B <xsl:sequence select="map:merge(($value, $collected))"/> B B </xsl:accumulator-rule> </xsl:accumulator> inside of the accumulator's rule body for the elements in the main document and later made sure that for those nodes you want to lookup there is a template outputting a value (which is then stored in the accumulator of the original document, due to the above setup). I will need to see whether you can combine an accumulator of the original document with another on referenced documents; I think it is easy with xsl:iterate or fold-left if you process a collection or uri collection but if the processing is done lower in a template I don't have a better suggestion currently than the above one.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Making a lookup structure, rick@xxxxxxxxxxxxxx | Thread | Re: [xsl] Making a lookup structure, Martin Honnen martin |
Re: [xsl] Making a lookup structure, rick@xxxxxxxxxxxxxx | Date | Re: [xsl] Making a lookup structure, Martin Honnen martin |
Month |