Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    XSL - modifica degli attributi

    Ciao a tutti,
    Sto lavorando su un file XML nel quale ogni tag ha un attributo di tipo ID.

    es:

    <primi id='1'>
    <primo1 id='11'/>
    <primo2 id='12'/>
    </primo>
    <secondo id='1'>
    <secondo1 id='11'>
    <secondo2 id='12'>
    <secondo3 id='13'>
    <terzo id='1'>
    ecc...


    Avevo pensato di fare un file XSL che riscriva questo XML senza modificare la struttura ma modificando gli ID in modo tale che siano unici e quindi senza perdita di consistenza.
    Avevo pensato di aggiungere dopo l'ID un numero random con 'generate-id()' però non riuesco a riscrivere il tutto con l'id aggiornato...
    Spero che qualcuno possa aiutarmi.... :-|

    Grazie mille!!!!

  2. #2
    Devi creare un XSL che da come risultato un nuovo XML.

  3. #3
    Era proprio quello il problema... ricreare un XML identico con alcuni attributi aggiornati. Ho provato con 'xsl:copy-of', con il quale ho ottenuto lo stesso xml, però non sono riuscito a modificare gli attributi riguardanti gli ID...

  4. #4
    Occhio che con xsl:copy-of copi tutto il tag esattamente com'è contenuto, attibuti e tag incorporati compresi! Ti tocca usare il tag xsl:element e il tag xsl:attribute. Per ricavare il nome dei tag mano a mano che li scadisci con un xsl:for-each basta selezionare value-of="name()".
    La mia spiegazione non è precisa ma spero che sia chiara.

  5. #5
    Ho capito quelle che vuoi dire... volevo sapere se c'è qualcosa di piu immediato, senza dover riscrivere tutti i tag gai esistenti e andando a cambiare solo l'attributo non desiderato... se non ci fosse nessun altro metodo mi toccherà riscrivere tutti i tag...

    Ti ringrazio

  6. #6
    Non è necessario riscriverli uno per uno, basta scandirli con un ciclo e usare name() al posto di esplicitare il nome del tag. Penso che ti servano due cicli incapsulati.
    Non penso ci sia un altra soluzione...

  7. #7
    ti ringrazio... vado subito a provare!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.