XSL:如何复制树,但删除一些节点?

Leo*_*nel 13 xslt

我想使用XSL从树中删除一些元素.

假设我有以下XML树:

<?xml version="1.0" ?>
<mydoc>
    <file>
        <colors>
            <blue />
            <red />
            <green />
        </colors>
        <secret>
            <username />
            <password />
        </secret>
    </file>
</mydoc>
Run Code Online (Sandbox Code Playgroud)

我想从中删除用户名和密码节点.我将如何处理XSL?

lav*_*nio 25

你想要一个身份变换.XSLT中的常见设计模式是将复制所有内容的转换.然后添加模板以删除或转换源和目标之间的不同内容.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="node() | @*">
        <xsl:copy>
            <xsl:apply-templates select="node() | @*"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="username|password"/> <!-- this empty template will remove them -->
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

  • 如何调用此模板? (3认同)