复制输入问题:
<Rel>
<IRel UID1="3a4d1d2909d0" UID2="35fe61082294" DefUID="AssetSupplier" />
<IObject UID="3a4d1d2909d0.AssetSupplier.35fe61082294" />
<SPXSupplier>
<ISPFOrganization />
<ISPFAdminItem />
<IObject UID="b73ebb87-cd36-4c25-b9ed-35fe61082294"
Description="local supplier made in form (10C)"
Name="CASTROL1200" />
<ISupplierOrganization />
</SPXSupplier>
</Rel>
Run Code Online (Sandbox Code Playgroud)
输出:我只想在输出中跳过SPXSupplier及其子节点
<Rel>
<IRel UID1="3a4d1d2909d0" UID2="35fe61082294" DefUID="AssetSupplier" />
<IObject UID="3a4d1d2909d0.AssetSupplier.35fe61082294" />
</Rel>
Run Code Online (Sandbox Code Playgroud)
目前我正在使用这个副本复制所有的东西,包括孩子,
<xsl:copy-of select="self::node()"/>
我只希望<Rel>,<IRel>和<IObject>标签.排除其他东西.
这是亚历克斯答案的改进.
<xsl:template match="SPXSupplier"/>
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
SPXSupplier的空模板意味着当您点击其中一个元素时,不会处理该元素下面的子树.我还使用了一种无条件复制属性的身份模板版本,效率更高.