如何使用
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>