Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    128

    estrarre contenuto di N tag

    questo è l'xml
    Codice PHP:
    <?xml version="1.0"?>
    <?xml
    -stylesheet type='text/xsl' href='persona.xsl'?>
    <dati>
        <persona>
            <nome>Mario</nome>
            <cognome>Rossi</cognome>
            <indirizzo>
                <via>Via Roma</via>
                <numero>36</numero>
                <cap>12345</cap>
                <comune>Genova</comune>
                <provincia>Ge</provincia>
            </indirizzo>
        </persona>
        <persona>
            <nome>Giuseppe</nome>
            <cognome>Verdi</cognome>
            <indirizzo>
                <via>Via Nizza</via>
                <numero>6</numero>
                <cap>123456</cap>
                <comune>Milano</comune>
                <provincia>MI</provincia>
            </indirizzo>
        </persona>
    </dati>
    mentro questo è l'xsl:
    Codice PHP:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <
    xsl:output method="html" version="4.0"/>
    <
    xsl:template match="dati">
    <
    html>
    <
    head>
        <
    title>persona.xml</title>
        <
    style>
        
    body
        
    {
            
    font-familyverdana;
        }
        </
    style>
    </
    head>
    <
    body>
        <
    table border="1">
            <
    tr bgcolor="#FFDEAD">
                <
    td >Nome:</td>
                <
    td>Cognome:</td>
                <
    td>Via:</td>
                <
    td>Numero civico:</td>
                <
    td>Cap:</td>
                <
    td>Comune:</td>
                <
    td>Provincia:</td>
            </
    tr>
            <
    xsl:apply-templates select="persona"/>            
        </
    table>
        
    </
    body>
    </
    html>
    </
    xsl:template>

        
    <
    xsl:template match="persona">    
            <
    tr bgcolor="#fff8dc">
                <
    td><xsl:value-of select="nome"/></td>
                <
    td><xsl:value-of select="cognome"/></td>
                <
    td><xsl:value-of select="indirizzo/via"/></td>
                <
    td><xsl:value-of select="indirizzo/numero"/></td>
                <
    td><xsl:value-of select="indirizzo/cap"/></td>
                <
    td><xsl:value-of select="indirizzo/comune"/></td>
                <
    td><xsl:value-of select="indirizzo/provincia"/></td>
            </
    tr>
    </
    xsl:template>    
    </
    xsl:stylesheet
    esiste un modo col "for-each" di evitare di scrivere un <td><xsl:value-of select"nometag"></td> per ogni tag? in modo tale che se ho 200 tag non devo scrivere <td><xsl:value-of select"nometag"></td> 200 volte?

  2. #2
    prova con questo foglio:

    codice:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html" version="4.0"/>
    <xsl:template match="dati">
    <html>
    <head>
        <title>persona.xml</title>
        <style>
        body
        {
            font-family: verdana;
        }
        </style>
    </head>
    <body>
        <table border="1">
            <tr bgcolor="#FFDEAD">
                <td >Nome:</td>
                <td>Cognome:</td>
                <td>Via:</td>
                <td>Numero civico:</td>
                <td>Cap:</td>
                <td>Comune:</td>
                <td>Provincia:</td>
            </tr>      
    	    <xsl:for-each select="persona">
                 <tr bgcolor="#fff8dc">
                  <xsl:for-each select="descendant::*"><xsl:if test="name()!='indirizzo'"><td><xsl:value-of select="."/></td></xsl:if></xsl:for-each>
                 </tr>
                </xsl:for-each>
    
               
        </table>
        
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    ciao

  3. #3
    Utente di HTML.it L'avatar di Polley
    Registrato dal
    Jan 2005
    Messaggi
    696
    funziona anche quello che hai fatto tu, non applicare il template alla persona <xsl:apply-templates select="persona" /> applicalo solo al nodo dati <xsl:apply-templates />

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    128
    ok grazie. come mai consigli di applicare il template al nodo dati e non a persona?

  5. #5
    Utente di HTML.it L'avatar di Polley
    Registrato dal
    Jan 2005
    Messaggi
    696
    Originariamente inviato da patrick82
    ok grazie. come mai consigli di applicare il template al nodo dati e non a persona?
    perchè di norma è giusto cosi

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    128
    ok grazie. mi sa che necessito di una ri-lettura dei manuali xml e xsl

  7. #7
    Utente di HTML.it L'avatar di Polley
    Registrato dal
    Jan 2005
    Messaggi
    696
    Originariamente inviato da patrick82
    ok grazie. mi sa che necessito di una ri-lettura dei manuali xml e xsl

    :quote:

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.