如何区分案例和翻译

时间:2014-06-09 13:27:23

标签: xslt xslt-2.0

我的XML文档中包含以下行。

<orderedlist type="manual">
<item num="1."><para>identify the issues in dispute;</para></item>
<item num="1.1"><para>explore and generate options;</para></item>
<item num="1.1.1"><para>communicate with one another; and/or</para></item>
<orderedlist>

我需要区分三个item

如果是1.(我的意思是,如果只有一个.),我想按原样打印,其余2,我想将.翻译为-

请让我知道我该怎么做。另请告诉我,如何检查.之后是否有任何号码。

由于

1 个答案:

答案 0 :(得分:0)

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="item">
<xsl:variable name="afterFirstPeriod" select="substring-after(@num,'.')"/>
<xsl:variable name="afterSecondPeriod" select="substring-after(substring-after(@num,'.'),'.')"/>
<xsl:variable name="beforeFirstPeriod" select="substring-before(@num,'.')"/>

<xsl:choose>
    <xsl:when test="$afterSecondPeriod">
<xsl:value-of select="$beforeFirstPeriod"/>-<xsl:value-of select="substring-before($afterFirstPeriod,'.')"/>*<xsl:value-of select="$afterSecondPeriod"/>
</xsl:when>
<xsl:when test="$afterFirstPeriod">
<xsl:value-of select="$beforeFirstPeriod"/>-<xsl:value-of select="$afterFirstPeriod"/>
</xsl:when>

<xsl:otherwise><xsl:value-of select="@num"/></xsl:otherwise>
</xsl:choose>
</xsl:template>