How can I conditionally copy XML elements using XSLT?

I am trying to conditionally copy nodes using XSL. Here is my XML:

<root>
    <node_a>111</node_a>
    <node_b>222</node_b>
    <node_c>333</node_c>
</root>

How to simply copy all EXCEPT nodes for "node_a" using XSLT?

TIA

+3
source share
1 answer

Use the identity translation plus the empty template matching node_a.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="node_a"/>
</xsl:stylesheet>

Works in both XSLT1 and XSLT2

+2
source

Source: https://habr.com/ru/post/1761541/


All Articles