2012-03-08 25 views
6

Ho visto questo essere utilizzato in questo contect:Cosa significa node() | @ * significa XSLT?

<xsl:template match="node()|@*"> 
<xsl:copy> 
    <xsl:apply-templates select="node()|@*"/> 
</xsl:copy> 

qualcuno può spiegare che il "nodo() | @ *" significa?

risposta

5

Questo è chiamato identity transform. node()|@* corrisponde a tutti i nodi figlio (node() è tutto testo, elemento, istruzioni di elaborazione, commenti) e attributi (@*) del contesto corrente.

+1

Bene, più precisamente, node() significa child :: node(), e @ * significa attributo :: *, quindi corrisponde a tutti i child e gli attributi del nodo di contesto. (Non corrisponde ai nodi del documento o ai nodi dello spazio dei nomi). –

+0

@ MichaelKay - Sì, hai ragione. Ho aggiunto un piccolo chiarimento al mio statment per evitare confusione. Grazie. –

+0

Grazie per l'aiuto. Mi sono chiesto cosa significasse dire quanto l'ho usato in molti documenti XSL senza comprenderne veramente la funzionalità. – MMKD