Dopo aver risposto a un gran numero di domande XSLT qui su Stack Overflow, sono più che familiare con la tecnica di raggruppamento Muenchian per raggruppare i nodi durante una trasformazione XSL.Il [1] nel raggruppamento di Muenchian è davvero necessario?
L'espressione ivi usata è di solito qualcosa di simile:
*[generate-id() =
generate-id(key('kSomeKey', .)[1])]
Contiene quasi invariabilmente che [1]
, ma questo ha sempre colpito me come dispari.
Il XSLT 1.0 specifica definisce generate-id()
come segue:
La funzione generate-id restituisce una stringa che identifica univocamente il nodo nell'argomento node-set che è primo nell'ordine dei documenti.
(corsivo)
Si afferma chiaramente che la funzione agisce sul primo nodo nell'ordine del documento, e in questo contesto, il [1]
sarebbe selezionando il primo nodo del gruppo nell'ordine del documento, così sembra che lo [1]
sia ridondante.
Questo [1]
viene utilizzato in modo così ampio da essere esitante a ometterlo, ma sembra estraneo. qualcuno può chiarire questo per me?
Sarebbe necessario in XSLT 2.0, poiché 'generate-id' non consente un set di nodi come primo argomento in questo e genera un errore. Ovviamente, se si stesse usando XSLT 2.0, sarebbe più probabile usare 'xsl: for-each-group' piuttosto che il Muenchian Grouping. –