2012-03-06 52 views
1

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

<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的,但是最后的评论我要添加额外的 文本之后“停:”之前我告诉停止。

我想这对于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测试?我如何修改它,以便只有最后一个注释元素的语句的计算结果为true?

回答

3

继兄弟姐妹可能是指下列任何兄弟姐妹,而不仅仅是眼前的单弟弟仍然年轻,即使你的长子,他是最年轻的3试试这个:

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

它选择在后面的第一个兄弟姐妹。

+0

太棒了。有效! – 2012-03-06 16:43:31

相关问题