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

    [XSL] Estrarre i primi 'n' elementi da un file xml

    Salve a tutti.
    Sono nuovo del forum.
    Scrivo per chiedere il vostro aiuto.
    Ho il seguente problema: tramite un foglio di trasformazione xsl devo estrarre da un file xml (nel caso specifico un rdf) i primi 3 elementi per poi essere visualizzati su di una pagina html; gli elementi dell'xml devono essere ordinati cronologicamente secondo il valore di due appositi tag.

    Di seguito riporto una porzione del file xml utilizzato:

    codice:
    <r:Description r:about="http://192.168.0.114/annotea/000000000C">
       <a:annotates r:resource="http://www.educational.rai.it/"/>
       <a:body r:resource="http://192.168.0.114/annotea/body/000000000C"/>
       <r:type r:resource="http://www.w3.org/2000/10/annotation-ns#Annotation"/>
       <r:type r:resource="http://www.w3.org/2000/10/annotationType#Audio"/>
       <_1:creator>
          Pippo
       </_1:creator>
       <a:created>
          2007-01-19T18:54:05+01:00  
       </a:created>
       <_1:date>
          2007-01-19T18:54:05+01:00 
       </_1:date>
       <a:context>
          aeiou aeiou
       </a:context>
       <_1:language>
          it
       </_1:language>
       <_2:commentoaudio>
          audio1   
       </_2:commentoaudio>
    </r:Description> 
    
    <r:Description r:about="http://192.168.0.114/annotea/000000000B">
       <a:annotates r:resource="http://www.educational.rai.it/"/>
       <a:body r:resource="http://192.168.0.114/annotea/body/000000000B"/>
       <r:type r:resource="http://www.w3.org/2000/10/annotation-ns#Annotation"/>
       <r:type r:resource="http://www.w3.org/2000/10/annotationType#Audio"/>
       <_1:creator>
          Pluto
       </_1:creator>
       <a:created>
          2007-01-19T18:53:33+01:00
       </a:created>
       <_1:date>
          2007-01-19T18:53:33+01:00
       </_1:date>
       <a:context>
          aeiou aeiou
       </a:context>
       <_1:language>
          it
       </_1:language>
       <_2:commentoaudio>
          audio2
       </_2:commentoaudio>
    </r:Description>
    Quello che attualmente riesco a fare è visualizzare tutti gli elementi dell'xml ordinati secondo i valori dei tag "a:created" e "a:date", utilizzando il seguente codice xslt:

    codice:
    <div class="tabbertab">
          <h2>Ultime note</h2>
          
    
          
    
    
            <table border="1" width="100%" id="QuestionTable">
            <xsl:apply-templates select="r:Description">
              <xsl:sort select="a:created"/>
              <xsl:sort select="a:date"/>
            </xsl:apply-templates>
          </table>
         </p>
    </div>
    
    <xsl:template match="r:Description">
        <tr>
          <td width="100%" bgcolor="#e7e4ba">
            Annotazione:
            
    </br>
            r:Description attributo r:about=<xsl:value-of select="@r:about"/>
    </br>
            <xsl:apply-templates select="a:created"/>
            <xsl:apply-templates select="_1:date"/>
            
    </br>
          </td>
        </tr>
    </xsl:template>
    Ma in questo modo li visualizzo tutti, mentre a me interessa visualizzare solo i primi 3. :master:

    P.S.
    Le faccine sorridenti all'interno del codice sono del tutto involontarie......

  2. #2
    ciao peppe79h26, benvenuto nel forum. :)
    provato con una roba (che non ho provato) del genere?

    codice:
    <xsl:if test="position()<=3">
        <tr>
          <td width="100%" bgcolor="#e7e4ba">
            Annotazione:
            
    
            rescription attributo r:about=<xsl:value-of select="@r:about"/>
    </br>
            <xsl:apply-templates select="a:created"/>
            <xsl:apply-templates select="_1:date"/>
            
    
          </td>
        </tr>
    </xsl:if>
    ciao

  3. #3
    Ciao e grazie var.

    Ha funzionato perfettamente, ma ho duvuto sostituire il minore con '&lt;' perchè firefox di mi dava:

    Errore interpretazione XML: non well-formed
    Linea numero 230, colonna 30: <xsl:if test="position() <= 3">
    ------------------------------------------------------^
    Grazie tante!!!!!!

  4. #4
    sì giusto, errore mio.
    contento di esserti stato utile. ;)

    ciao

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 © 2026 vBulletin Solutions, Inc. All rights reserved.