<xsl:comment><xsl:apply-templates select="image" /></xsl:comment>
Come risultato:
<!---->
che è il codice nell'elemento xsl: Commento ignorato
The XSLT 1.0 Spec dice:
Si tratta di un errore durante l'istanziazione del contenuto di xsl: il commento crea nodi diversi dai nodi di testo. Un processore XSLT può segnalare l'errore; se non segnala l'errore, è necessario eseguire il ripristino ignorando i nodi in conflitto con il loro contenuto.
Come visualizzare un elemento nei commenti ?
Dipende da cosa si intende per "esposizione": in un browser:
<-- <xsl:apply-templates select="image" /> -->
può essere utile, a condizione che il risultato di <xsl:apply-templates/>
aboveis testo solo semplice (non markup).
Se a "schermo" significa per fornire il risultato come testo, quindi DOE, se consentito dal processore XSLT, può darci il risultato desiderato:
< - Alcuni testi - >
Infine, se è necessario che quello che dovrebbe essere all'interno del "commento" dovrebbe essere marcato e dovrebbe essere visualizzato come markup, allora questo è piuttosto impegnativo. In questo caso si deve usare:
<xsl:output method="text"/>
e dovrebbe presentare ogni elemento lessicale XML con la sua serializzazione desiderato (vale a dire sfuggito).
Ecco come XPath Visualizer costruisce l'output.
Ecco una piccola trasformazione che dimostra i primi due approcci:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<-- Hello, World -->
<xsl:text disable-output-escaping="yes"><--</xsl:text>
Hello,world! --<xsl:text disable-output-escaping="yes">></xsl:text>
</xsl:template>
</xsl:stylesheet>
questa trasformazione, quando applicato su qualsiasi documento XML (non utilizzato), produce:
<-- Hello, World -->
<--
Hello,world! -->
Entrambi i "commenti" possono essere visualizzati come commenti in un browser, mentre solo il secondo viene presentato come commento in testo libero.
Il terzo approccio (più probabilmente quello che volete) è illustrata di seguito:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<-- <xsl:apply-templates select="image"/> -->
</xsl:template>
<xsl:template match="image">
<img src="<xsl:value-of select="@src"/>"
width="<xsl:value-of select="@width"/>px"
height="<xsl:value-of select="@height"/>px"/>
</xsl:template>
</xsl:stylesheet>
quando questa trasformazione è applicato sul seguente documento XML:
<image src="http://example.com/yyy.jpg" width="200" height="300"/>
l'ha voluto il risultato è prodotto:
<--
<img src="http://example.com/yyy.jpg"
width="200px"
height="300px"/>
-->
visualizzato in un browser come:
< - < img src = "http://example.com/yyy.jpg" width = "200px" height = "300px"/> - >
Buona domanda, +1. Vedi la mia risposta per una spiegazione dettagliata e tre possibili approcci, a seconda del compito specifico. –
Ho appena modificato la mia risposta e penso che ora ha la soluzione che desideri. È così? –