2012-03-08 13 views
6

he visto a este ser utilizada en este Contect:¿Qué significa node() | @ * XSLT?

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

¿Puede alguien explicar que el "nodo() | @ *" significa?

Respuesta

5

Esto se llama identity transform. El node()|@* está haciendo coincidir todos los nodos secundarios (node() es todo texto, elemento, instrucciones de procesamiento, comentarios) y atributos (@*) del contexto actual.

+1

Bueno, más precisamente, node() significa child :: node(), y @ * means attribute :: *, por lo que está haciendo coincidir todos los elementos secundarios y atributos del nodo de contexto. (No coincide con los nodos de documento o los nodos de espacio de nombres). –

+0

@MichaelKay - Sí, tienes razón. Agregué un poco de aclaración a mi declaración para evitar confusiones. Gracias. –

+0

Gracias por la ayuda. Me he preguntado qué significaba, ya que lo he usado en muchos documentos XSL sin entender realmente su funcionalidad. – MMKD