[xsl] Group handling of multiple IDREFS

Subject: [xsl] Group handling of multiple IDREFS
From: "Peter Flynn peter@xxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 19 Dec 2019 23:42:27 -0000
I have a custom document type which makes heavy use of an IDREFS attribute on an element type for cross-referencing. In the containing section, I need to iterate across the first occurrences of the values in document order. This is easy with an IDREF attribute, eg

<xsl:for-each-group select="descendant::ref" group-by="@to">
...
</xsl:for-each-group>

But with IDREFS, I need to iterate across all the separate ID values referenced, in the order in which they occur in the attribute.

I could of course construct a node-set which flattens the data, or perhaps use an index, but I wondered if anyone else has had this requirement before, or if there was an existing function, like (hypothetically) group-by="fn:eachof(@to)"

Peter

Current Thread