如何测试follow-sibling标签是否具有特定的属性值?

时间:2012-03-06 16:31:24

标签: xslt

示例xml:

<body>
<macroField dictTag="comment"></macroField>
<macroField dictTag="comment"></macroField>
<macroField dictTag="comment"></macroField>
<macroField dictTag="comment"></macroField>
<macroField dictTag="stopName">Old Wisconsin </macroField>
<macroField dictTag="stopName">Another stop</macroField>
<macroField dictTag="stopName">Another stop</macroField>
</body>

我需要将注释转换为div,但在最后一条注释后我想添加额外的注释 文字“STOPS:”在我停止之前。

我尝试将此xsl用于评论标记但由于某种原因,它对每个评论标记的评估结果为true,而不仅仅是针对最后一个评论标记:

   <xsl:template match="*[@dictTag = 'comment']">
    <div class="comment_line">
        <xsl:value-of select="."/>
    </div>
    <xsl:if test="following-sibling::macroField/@dictTag = 'stopName'">
        <p>STOPS</p>
    </xsl:if>
</xsl:template>

我的xsl有什么问题:if test?如何修改它,以便if语句仅对最后一个注释元素求值为真?

1 个答案:

答案 0 :(得分:3)

跟随兄弟姐妹可以参考任何一个兄弟姐妹,而不仅仅是那个兄弟姐妹 - 即使你是最年长的弟弟,他的弟弟仍然年轻,而且他是3岁中最小的。试试这个:

following-sibling::macroField[1]/@dictTag = 'stopName'

选择以下第一个兄弟姐妹。

相关问题