Come faccio a selezionare tutti i nodi di commenti in un file XML?
Domanda
Domanda semplice. Ho un file XML con un paio di decine di blocchi di commento. Questo si sta trasformando da un foglio di stile per generare una pagina HTML. Tuttavia, i commenti vengono ignorati con questo. Ma in fondo l'HTML generato Vorrei avere un elenco di tutti i commenti all'interno del file XML. È che anche possibile, senza l'utilizzo di altro che pura XSLT? (No Javascript o qualsiasi altra cosa!)
Per quanto ne so, questo non è possibile, ma potrei sbagliarmi ...
Soluzione
Il motivo per i commenti non vengono elaborati è che il modello predefinito per i commenti non fare nulla:
<xsl:template match="processing-instruction()|comment()"/>
XSLT 1.0 spec "Built-in regole di modello" .
Se volete fare qualcosa di diverso con i commenti, si può solo creare il proprio modello e uscita sia come un nuovo commento XML utilizzando xsl:comment
di corrispondenza o di fare una lista HTML:
<xsl:template match="/">
<ul>
<xsl:apply-templates select="//comment()"/>
</ul>
</xsl:template>
<xsl:template match="comment()">
<li>
<xsl:value-of select="."/>
</li>
</xsl:template>