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::*
?