visor - ¿Cómo establecer un atributo en XML usando XSLT?
xslt editor (3)
Los atributos de los elementos de resultados literales son compatibles con la sintaxis de la plantilla de valor de atributo , utilizando {}
:
<Party role="{some/xpath/path}">
Por ejemplo, quiero agregar un atributo a este nodo:
<Party>
Así se verá como:
<Party role="this should be set using XPath">
El valor del atributo tiene que venir de XPath.
Lo siguiente no funcionará :)
<Party role=<xsl:value-of select="some/xpath/path"/>>
¿Como hacer eso?
Puedes probar la siguiente muestra:
<xsl:for-each select="YOUR_SELECT_PATH">
<a>
<Party> <xsl:attribute name="role"><xsl:value-of select="@source"/></xsl:attribute> </Party>
<xsl:value-of select="."/>
</a>
</xsl:for-each>
Aquí estoy configurando el rol de atributo en un nodo xml Party.
<xsl:template match="Party">
<Party role="{some/xpath/path}">
<xsl:apply-templates select="@* | node()"/>
</Party>
</xsl:template>
debería hacer. Como alternativa
<xsl:template match="Party">
<xsl:copy>
<xsl:attribute name="role" select="some/xpath/path"/>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
Por supuesto, las plantillas de aplicación solo son necesarias si hay nodos de atributos y / o secundarios que también desea procesar (por ejemplo, para ser copiados por una plantilla de transformación de identidad).