2009-07-04 63 views
5

我有一個表:什麼XPath從表中選擇奇數TR,從第三個開始?

<table> 
    <tr><td>1</td></tr> 
    <tr><td>2</td></tr> 
    <tr><td>3</td></tr> 
    <tr><td>4</td></tr> 
    <tr><td>5</td></tr> 
    <tr><td>6</td></tr> 
    <tr><td>7</td></tr> 
    <tr><td>8</td></tr> 
    <tr><td>9</td></tr> 
</table> 

我需要一個XPath來選擇奇數行,開始的第三行(3,5,7,9,等等)。

回答

4

我認爲XPATH的'position()'函數可以完成這項工作。返回當前正在處理的節點的索引位置。你需要做的位置()MOD 2.

這裏是XSLT解決方案

<xsl:for-each select="tr"> 
    <xsl:choose> 
    <xsl:when test="position() mod 2 = 1 and position() > 1"> 
     ...do smthng .... 
    </xsl:when> 
    <xsl:otherwise>...do something else...</xsl:otherwise> 
    </xsl:choose> 
</xsl:foreach> 
14
"/table/tr[position() mod 2 = 1 and position() > 1]" 
相關問題