Come utilizzare XSLT per creare valori distinti

Ho XML come questo:

   laptop charger     laptop headphones    

Voglio che produca come

 il computer portatile
 caricabatterie
 cuffie

Stavo cercando di usare distinct-values() ma immagino che sto facendo qualcosa di sbagliato. Qualcuno può dirmi come ottenere ciò usando distinct-values() ? Grazie.

   
  • ma mi sta dando un risultato come questo:

     
  • laptop
  • charger
  • laptop>
  • headphones
  • Una soluzione XSLT 1.0 che utilizza la key e la funzione generate-id() per ottenere valori distinti:

           
  • Ecco una soluzione XSLT 1.0 che ho usato in passato, penso che sia più succinta (e leggibile) rispetto all’utilizzo della funzione generate-id() .

       

    Ritorna:

     
    • laptop
    • charger
    • headphones

    Non vuoi “output (valori distinti)”, ma piuttosto “per-ciascuno (valori distinti)”:

       
  • Sono arrivato a questo problema mentre lavoravo con un rendering XSL Sitecore. Sia l’approccio che ha usato key () sia l’approccio che ha utilizzato l’asse precedente hanno funzionato molto lentamente. Ho finito per usare un metodo simile a key () ma che non richiedeva l’uso di key (). Funziona molto velocemente.

         

    distinct-values(//product/text())