如何删除特定标识符并使用xslt更改元素标记?例如,如果输出的值包含标识符&#34; ALPHA&#34;,我需要在输出值中删除它,标记名称将变为<Alpha>
。如果它包含标识符&#34; ZERO&#34;,则元素标记将变为<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>
谢谢。非常感谢您的反馈。
答案 0 :(得分:0)
以这种方式:
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>