我有 xml 输入消息:
<Message>
<Header>
<Timestamp>2010-10-04T14:43:12.361-04:00</Timestamp>
</Header>
</Message>
我需要通过 xslt 来获得:
<Message>
<Header>
<Timestamp>2010-10-04T14:43:12.361-04:00</Timestamp>
<Retry>1</Retry> <!-- added -->
</Header>
</Message>
如果 Retry 不存在于 xml 中,则将 Retry 值增加 1(如果存在)。
<Message>
<Header>
<Timestamp>2010-10-04T14:43:12.361-04:00</Timestamp>
<Retry>2</Retry> <!-- incremented -->
</Header>
</Message>
你能帮忙吗?
如果不存在,我有代码添加值,如果存在标签,如何丰富它以增加:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:param name="ename">Retry</xsl:param>
<xsl:param name="evalue">1</xsl:param>
<xsl:output method="xml" encoding="utf-8"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="Header">
<xsl:copy>
<xsl:apply-templates/>
<xsl:if test="not(Retry)">
<xsl:element name="{$ename}"><xsl:value-of select="$evalue"/></xsl:element>
</xsl:if>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>