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

    visualizzare tabella presente in xml

    ho un file xml, nel quale all' interno è contenuta una tabella:



    codice:
    <?xml version="1.0" encoding="iso-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="style.xsl"?>
    <elemento>
    		<titolo>titolo</titolo>
    		<corpo>
    				<table>
    				<tr>
    					<td>primo</td>
    					<td>secondo</td>
    				</tr>
    				</table>
    		</corpo>
    </elemento>
    voglio visualizzare tale file utilizzando un xls, ma non riesco a vedere correttamente i dati contenuti all' interno di <table>:
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
     <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
    <xsl:output method="html" indent="yes"
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />
    
    <xsl:template match="/">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" title="main" href="screen.css" type="text/css" />
    </head>
    <body>
    
    <xsl:for-each select="//elemento">
    		<h1><xsl:value-of select="titolo" /></h1>
    		
    		<xsl:for-each select="//table">
    		<table>
    				<xsl:for-each select="//tr">
    				<tr>
    						<xsl:for-each select="//td">
    								<xsl:value-of select="//td" />
    						</xsl:for-each>
    				</tr>
    				</xsl:for-each>
    		</table>
    		</xsl:for-each>
    
    </xsl:for-each>
    
    </body>
    </html>
    
    </xsl:template>
    </xsl:stylesheet>
    dove sto sbagliando?

  2. #2
    Ciao,
    sbagli nei for-each a selezionare i nodi.

    Per rendere la trasformazione XSLT + elegante potresti utilizzare i template.
    dai uno sguardo qui:
    http://mirkoagrati.110mb.com/articol...p&dir=XML_XSLT


    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  3. #3
    ho visto il tuo esempio.
    ma nel mio caso devo riportare una tabella di cui nn so quanti <tr> o <td> sarà composta.
    la tabella in questione potrebbbe anche non esserci (il file xml viene generato dinamicamente), per questo motivo avevo utilizzato la funzione <xsl:for-each select="//table">

    non so se mi sono spiegato....

  4. #4
    Non importa, basta che crei i templati per una cella e una riga,
    poi automaticamente ogni volta che te ne incontra 1 lo esegue.

    Cmq,
    se non vuoi abbandonare il tuo modo di elaborare il file XML devi correggere il
    mapping dei nodi:

    <xsl:for-each select="elemento">

    ecc......

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  5. #5
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Premetto che ne conosco pochissimo ...

    Ma utilizzare <xsl:copy-of select="corpo/*"/> senza ricostruire la tabella in xsl?
    Maurizio

    "se ami il lavoro che fai, non lavorerai mai un giorno in vita tua!"

  6. #6
    Non so,
    non lo ho mai utilizzato.

    Utile a sapersi

    Ciao
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  7. #7
    <xsl:copy-of select="corpo/*"/>
    grazie, cosi funziona

  8. #8
    ho un' altra questione: nel caso in cui, al posto della tabella precedente, sia presente un campo CDATA, come faccio a farlo vedere con xls?
    grazie ancora

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.