3

lxmlでは、xpathを使用して、テーブル内のすべてのtr(行数が変化する)を選択しています。ただし、最後の2行にはジブリッシュが含まれています。

最後の2行を除外するパターン一致はありますか?xpathチュートリアルを調べていたところ、「except」演算子と「last()」があるようですが、コードを機能させることができないようです。

これまでのところ私はこれを持っています。このパターンに何を追加して、最後の2行を除外するのですか?主な問題は、trの数が変化することです。

result = doc.xpath("//tr")

これをリストに変換して、最後の2つの要素を削除することもできると思いますが、もっと簡単でエレガントな解決策はありますか?

前もって感謝します!

4

2 に答える 2

9

使用

expressionSelectingTheTable/tr[not(position() > last() -2)]

ここexpressionSelectingTheTableで、質問が行われているテーブルを選択する特定のXPath式に置き換える必要があります(など//table[@id='foo']

この単一のXPath式trは、親のすべての子を選択しますtable。その位置は、最後の2つのうちの1つではありません。

于 2011-02-11T17:41:49.920 に答える
2
result = doc.xpath("//tr")[0:-2]

トリックを行う必要があります。

于 2011-02-11T05:57:26.207 に答える