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