如何使用 XSLT 删除特定标识符

How to remove specific identifier using XSLT

如何删除特定标识符并使​​用 xslt 更改元素标签?例如,如果输出的值包含标识符"ALPHA",我需要在输出值中将其删除,标签名称将变为<Alpha>。如果它包含标识符 "ZERO",则元素标记将变为 <Zero> 并在输出中删除标识符零。

示例:

<Data>
    <Element>01ALPHA</Element>
    <Element>Geraldine AnneALPHA</Element>
    <Element>012345ZERO</Element>
</Data>

预期输出

<Data>
    <Alpha>01</Alpha>
    <Alpha>Geraldine Anne</Alpha>
    <Zero>012345</Zero>
</Data>

谢谢。非常感谢您的反馈。

这是一种方法:

XSLT 2.0

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>

<!-- identity transform -->
<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

<xsl:template match="Element[ends-with(., 'ALPHA')]">
    <Alpha>
        <xsl:value-of select="substring-before(., 'ALPHA')"/>
    </Alpha>
</xsl:template>

<xsl:template match="Element[ends-with(., 'ZERO')]">
    <Zero>
        <xsl:value-of select="substring-before(., 'ZERO')"/>
    </Zero>
</xsl:template>

</xsl:stylesheet>