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


如何使用

xslt 删除特定标识符并更改元素标签?例如,如果输出的值包含标识符"ALPHA",我需要在输出值中删除它,标签名称将变为<Alpha>。如果它包含标识符"ZERO",则元素标记将变为<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>

相关内容

  • 没有找到相关文章