[Home] [By Thread] [By Date] [Recent Entries]
On 23/05/2022 12:08, Chris Papademetrious
christopher.papademetrious@xxxxxxxxxxxx wrote:
With XSLT/XPath 3 there is a far more elegant and efficient method. Just add the following template: <xsl:template match="p/@outputclass[not(contains-token(.,'BAZ'))]>
B B B <xsl:attribute name="{name(.)}" select=". || ' BAZ'"/>
</xsl:template>(see https://www.w3.org/TR/xpath-functions-31/#func-contains-token) and your template for p can merely be: <xsl:template match="p">
<xsl:copy>
B B B <xsl:apply-templates select="@*,node()" mode="#current"/>
</xsl:copy>
</xsl:template>and if you're using <xsl:mode on-no-match="shallow-copy"/> you won't even need the second template. -- *John Lumley* MA PhD CEng FIEE john@xxxxxxxxxxxx
|

Cart



