[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Group handling of multiple IDREFS
If this was schema-aware, then atomizing the @to attribute would return a list of atomic values, so it would all just work... As it is, can't you simply do group-by="tokenize(@to)"? Or have I missed something? Note that when the group-by expression selects multiple values, the element will appear in multiple groups. XSLT 3.0 introduces composite="yes" which means that the multiple values are treated as a single grouping key. Michael Kay Saxonica > On 19 Dec 2019, at 23:42, Peter Flynn peter@xxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > > 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
|
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
|