假设我有以下 XSLT:
<xsl:template match="DTS:Executable[@DTS:ExecutableType='SSIS.Package.2' or @DTS:ExecutableType='MSDTS.Package.1']">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates select="./DTS:Property"/>
<xsl:apply-templates select="./DTS:ConnectionManager"/>
<xsl:apply-templates select="./DTS:Configuration"/>
<xsl:apply-templates select="./DTS:LogProvider"/>
</xsl:copy>
</xsl:template>
我意识到如果有其他节点类型,例如 DTS:Variable,它们将从生成的 XML 中过滤掉,因为没有 apply-templates 语句选择它们。
我的问题是:如何用一个 apply-templates 语句来结束副本,该语句选择之前的 apply-templates 语句中未指定的所有元素?
我试过类似的东西:
<xsl:apply-templates select="./node()[name!='DTS:Property' and name!='DTS:ConnectionManager' and name!='DTS:Configuration' and name!='LogProvider']" />
但这似乎不起作用。