Это преобразование :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="table1">
<ApplicantAddress>
<xsl:apply-templates select="node()|@*"/>
</ApplicantAddress>
</xsl:template>
<xsl:template match="c"/>
</xsl:stylesheet>
при применении к этому документу XML (который вы пропустили, чтобы предоставить):
<table1>
<a/>
<b/>
<c/>
<d/>
</table1>
дает желаемый результат (элемент b
не скопирован):
<ApplicantAddress>
<a />
<b />
<d />
</ApplicantAddress>
Объяснение : использование и переопределение правила идентификации / template - самый фундаментальный шаблон проектирования XSLT.Здесь мы переопределяем правило идентификации с помощью шаблона пустого тела, соответствующего c
, и это гарантирует, что этот элемент игнорируется («удален» / не скопирован).