Diferença entre: child :: node () e child :: *

Acabei de escrever um XSLT que não funcionou no iníci

Eu tive que renomear todos os filhos de<Recordset> para<C>:

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

Eu usei o seguinte XSLT:

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

Funciona e renomeia todos os filhos de<Recordset> para<C>. Mas primeiro minha correspondência no modelo ficou assim:

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

A minha ideia era que todo filho de<Recordset> é um nó, portantonode() seria apropriado. Também funcionou, mas inseriu um @ ext<C/> para cada criança.

Qual é a diferença entrechild::node() echild::*?

questionAnswers(2)

yourAnswerToTheQuestion