Diferencia entre: child :: node () y child :: *

Acabo de escribir un XSLT que no funcionó al principio.

Tuve que cambiar el nombre de todos los hijos de<Recordset> a<C>:

<?xml version="1.0" encoding="utf-8"?>
<Record>
<Recordset>
    <company>102</company>
    <store>1801</store>
    ....
</Recordset>
<Recordset>
....
</Recordset>
</Record>

Usé el siguiente XSLT:

<xsl:template match="Record/Recordset/child::*">    
    <xsl:element name="C">
        <xsl:apply-templates select="@*|node()"/>
    </xsl:element>
</xsl:template>

Funciona y cambia el nombre de todos los hijos de<Recordset> a<C>. Pero primero mi partido en la plantilla se veía así:

<xsl:template match="Record/Recordset/child::node()">

Mi idea era que cada hijo de<Recordset> es un nodo, por lo tantonode() sería apropiado. También funcionó pero insertó un @ ext<C/> para cada niño.

Cuál es la diferencia entrechild::node() ychild::*?

Respuestas a la pregunta(2)

Su respuesta a la pregunta