使用后代时忽略孩子

时间:2014-11-25 11:37:58

标签: xslt-2.0

我有以下的XML。

<list>
 <list.item>
        <label>
            <star.page>94</star.page> (a)</label>
 </list.item>
 <list.item>
            <label>(b)</label>  As the
 </list.item>
</list>

并且我试图通过忽略label的子节点来获取标签的最大字符串长度,我正在尝试使用下面这样做。

        <xsl:template name="orderedlist" match="list">
    <xsl:variable name="strl">
    <xsl:value-of select="max(descendant::list.item/label/string-length(text()[fn:not(self::star.page)]))"/>
    </xsl:variable>
    <xsl:value-of select="$strl"/>
        <xsl:choose>
            <xsl:when test="$strl > '6'">
                <ol class="eng-orderedlist orderedlist1">
                <xsl:apply-templates/>
            </ol>
            </xsl:when>
            <xsl:otherwise>
                <ol class="eng-orderedlist orderedlist">
                <xsl:apply-templates/>
            </ol>

            </xsl:otherwise>
        </xsl:choose>

        </xsl:template>
<xsl:template name="orderitem" match="list.item">
        <xsl:apply-templates select="./label/node()[1][self::star.page]" mode="first"/>
        <li class="item">
            <div class="para">
                <xsl:if test="./label">
                    <span class="item-num">
                        <xsl:value-of select="./label/text()"/>
                    </span>
                </xsl:if>
                <xsl:choose>
                    <xsl:when test="./text()">
                        <xsl:apply-templates select="child::node()[fn:not(self::label)]"/>
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:text>&#160;</xsl:text>
                    </xsl:otherwise>
                </xsl:choose>
            </div>
        </li>
    </xsl:template>

根据@Martin Honnen的建议,enter link description here,我尝试了以下内容。

但它给出了以下错误。

XSLT 2.0 Debugging Error: Error: file:///C:/Users/u0138039/Desktop/Proview/Law%20Reports/HK/11NOV/P1/XML/XSLT/Reports(RXXX_sma-DXXXHX).xslt:1420: Wrong occurrence to match required sequence type -   Details: -     XPTY0004: The supplied sequence ('2' item(s)) has the wrong occurrence to match the sequence type xs:string ('zero or one')
请让我知道我哪里出错了。

由于

0 个答案:

没有答案