L'avevo affrontata tempo fa questa problematica e l'avevo risolta in modo blasfemo secondo me. Ipotizzando di avere un file xml con questi dati:
<?xml version="1.0" encoding="utf-8" ?> <dati> <dato>Dato 1</dato> <dato>Dato 2</dato> <dato>Dato 3</dato> <dato>Dato 4</dato> <dato>Dato 5</dato> <dato>Dato 6</dato> <dato>Dato 7</dato> <dato>Dato 8</dato> </dati>
Con un file xslt, come posso visualizzare una tabella suddividendo questi dati su due colonne in modo da ottenere questo?
Dato 1 | Dato 2 |
Dato 3 | Dato 4 |
Dato 5 | Dato 6 |
Dato 7 | Dato 8 |
Sembrava semplice, ma per un non guru dell'xslt mi sono ritrovato di fronte a un bel problema. All'inizio avevo abbozzato questo codice xslt:
<xsl:template match="/"> <p> <xsl:for-each select="//dati/*"> <xsl:if test="position() mod 2=1"><tr></xsl:if> <td><xsl:<xsl:value-of select="." /></td> <xsl:if test="position() mod 2=0"></tr></xsl:if> </xsl:for-each> </p> </xsl:template>
Ma ovviamente essendoci dei tag aperti (<tr> e </tr> nei rispettivi if), questo codice non è valido è non può essere utilizzato. Il risultato era nato dopo una meditazione ad alta quota. La soluzione, che però non trovo ottimale, è la seguente:
a<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:param name="prima"><tr></xsl:param> <xsl:param name="dopo"></tr></xsl:param>
<xsl:template match="/"> <table border="1px"> <xsl:for-each select="//dati/*"> <xsl:if test="position() mod 2=1"> <xsl:value-of select="$prima" disable-output-escaping="yes" /> </xsl:if> <td><xsl:value-of select="." /></td> <xsl:if test="position() mod 2=0"> <xsl:value-of select="$dopo" disable-output-escaping="yes" /> </xsl:if> </xsl:for-each> </table> </xsl:template>
</xsl:stylesheet>
L'attributo disable-output-escaping permette di poter visualizzare correttamente il valore di apertura e chiusura riga anche se è stato inserito come parametro in formato escape. Ma c'è una soluzione migliore? Boh.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- C# e Net 6 in Kubernetes con Prometheus e Grafana, il 12 gennaio 2022 alle 21:58
- Snaturare Kubernetes evitando i custom container Docker, il 6 gennaio 2022 alle 19:40
- Provando Kaniko in Kubernetes come alternativa a Docker per la creazione di immagini, il 18 dicembre 2021 alle 20:11
- Divertissement con l'OpenID e Access Token, il 6 dicembre 2021 alle 20:05
- Operator per Kubernetes in C# e Net Core 6., il 28 novembre 2021 alle 19:44
- RBAC in Kubernetes verso gli operator, il 21 novembre 2021 alle 20:52