示例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语句仅对最后一个注释元素求值为真?
答案 0 :(得分:3)
跟随兄弟姐妹可以参考任何一个兄弟姐妹,而不仅仅是那个兄弟姐妹 - 即使你是最年长的弟弟,他的弟弟仍然年轻,而且他是3岁中最小的。试试这个:
following-sibling::macroField[1]/@dictTag = 'stopName'
选择以下第一个兄弟姐妹。