对不起,但我对xsl的了解并不是太好。
我有一些代码从不同数量的节点构造3列的表格:XSL找到一个字符串,并从该点开始
<xsl:variable name="t-size" select="count(NewDataSet/VehicleDetail/Options/Option)"/>
<xsl:variable name="myCount" select="ceiling($t-size div 3)"/>
<table callpadding="4" cellspacing="0" border="0" id="specificationTbl">
<xsl:for-each select="NewDataSet/VehicleDetail/Options/Option[position() <= $myCount]">
<xsl:variable name="here" select="position()"/>
<tr>
<td class="stiDetail"><xsl:value-of select="."/></td>
<td class="stiDetail"><xsl:choose>
<xsl:when test="../Option[$here+$myCount]">
<xsl:value-of select="../Option[$here+$myCount]/."/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
</td>
<td class="stiDetail"><xsl:choose>
<xsl:when test="../Option[$here+$myCount+$myCount]">
<xsl:value-of select="../Option[$here+$myCount+$myCount]/."/>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose></td>
</tr>
</xsl:for-each>
</table></td>
这工作得很好。但是我所追求的是循环扫描节点的字符串值,然后从包含字符串的节点之后的节点开始。
EG。下面的示例XML
<options>
<option>something</option>
<option>something</option>
<option>something</option>
<option>something</option>
<option>hello world</option>
<option>something</option>
<option>something</option>
<option>something</option>
<option>something</option>
<option>something</option>
<option>something</option>
</options>
所以在上面的XML,我想扫描包含单词“世界”的节点,然后从以下节点IE启动创建表。从位置6开始。
希望是有道理的。
任何帮助将受到最感激的接收。
非常感谢,
Andy。
问得好,+1。查看我的答案,获取选择所需元素的较短的XPath表达式。 –