Ordinare XML con XSL ed ottenere un XML

mercoledì 08 aprile 2009 - 21.20

demike Profilo | Newbie

Ho un XML di questo stile:
<output> <node nome=""> <direct num=""> <elem/> </direct> </node> </output>

Vorrei, mediante XSLT, semplicemente ordinare i nodi DIRECT per l'attributo NUM ed ottenere un ALTRO XML.
Credetimi sto impazzendo, facendo migliaia di prove...

ecco qui un esempio più specifico:

<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="appo.xslt"?> <output> <node name="a"> <direct num="2"> <elem1/> <elem2/> <elem3/> </direct> <direct num="1"> <elem1/> <elem2/> </direct> <direct num="3"> <elem1/> <elem2/> <elem3/> </direct> </node> <node name="b"> <direct num="2"> <elem1/> <elem3/> </direct> <direct num="7"> <elem1/> <elem2/> </direct> <direct num="4"> <elem1/> <elem2/> </direct> </node> </output>

grazie


AGGIORNAMENTO:
sono riuscito QUASI in quello che volevo con questo XSLT:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Solo che non vengono copiati gli attributi dell'elemento NODE...

chiccomox Profilo | Junior Member

Ciao,

scusa ma nel tuo esempio di xslt fai un ordinamento ascendente sull'attriburo @rank che non compare nell'xml! C'è qualcosa che non va nel tuo esempio....

cmq la regola generale è:

xsl:copy-of per deep copy, xsl:copy per shallow copy, xsl:apply-templates for una trasformazione.
cioè xsl:copy copia il nodo corrente, i sotto nodi non vengono copiati; xsl:copy-of copia i nodi e tutti i suoi discendenti.

ciao,

Chiccomox
http://www.dotnetpertutti.com
http://www.windowspertutti.com

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5