このXPath2.0式:
for $i in 1 to count(/tbody/tr),
$r in /tbody/tr[$i],
$s in string-join($r/td[not(position() eq 3)]/normalize-space(.), ' ')
return
concat($s, '
')
提供されたXMLドキュメントで評価した場合:
<tbody>
<tr class="" data-row="0">
<td align="left">1985-86</td>
<td align="left"><a href="/teams/LAL/1986.html">Los Angeles Lakers</a></td>
<td align="left"><a href="/leagues/NBA_1986.html">NBA</a></td>
<td align="right" csk="2030000">$2,030,000</td>
</tr>
<tr class="" data-row="1">
<td align="left">1987-88</td>
<td align="left"><a href="/teams/LAL/1988.html">Los Angeles Lakers</a></td>
<td align="left"><a href="/leagues/NBA_1988.html">NBA</a></td>
<td align="right" csk="2000000">$2,000,000</td>
</tr>
<tr class="" data-row="2">
<td align="left">1988-89</td>
<td align="left"><a href="/teams/LAL/1989.html">Los Angeles Lakers</a></td>
<td align="left"><a href="/leagues/NBA_1989.html">NBA</a></td>
<td align="right" csk="3000000">$3,000,000</td>
</tr>
</tbody>
必要な正しい結果を生成します。
1985-86 Los Angeles Lakers $2,030,000
1987-88 Los Angeles Lakers $2,000,000
1988-89 Los Angeles Lakers $3,000,000
除外する列の位置が固定されることが保証されていない場合は、次を使用します。
for $i in 1 to count(/tbody/tr),
$r in /tbody/tr[$i],
$s in string-join($r/td[not(starts-with(a/@href,'/leagues'))]
/normalize-space(.), ' ')
return
concat($s, '
')