我有以下的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> </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')
请让我知道我哪里出错了。
由于