2012-02-08 18 views
1

は、私はそれがテストビル・ステートメントの詳細が含まれている、このテーブルを見つけるために、XPATHを作成しようとしています。こののXPath一致するテキスト - ルビー - Nokigiri

<table cellpadding="1" cellspacing="0" width="100%" border="0"> 
    <tr> 
     <td colspan="9" class="csoGreen"><b class="white">Bill Statement Detail</b></td> 
    </tr> 
    <tr style="background-color: #D8E4F6;vertical-align: top;"> 
     <td nowrap="nowrap"><b>Bill Date</b></td> 
     <td nowrap="nowrap"><b>Bill Amount</b></td> 

     <td nowrap="nowrap"><b>Bill Due Date</b></td> 
     <td nowrap="nowrap"><b>Bill (PDF)</b></td> 
    </tr> 
</table> 

のように見えるテーブルを持っています。私はテーブル全体だけでなく、TDをしたい。

page.parser.xpath

page.parser.xpath( '//テーブルには、[(テキスト()、 "ビル")が含ま]'):ここで

は、私がこれまで試してみましたものです( '//テーブル/のtbody/TR [含まれています(テキスト()、 "ビル・ステートメント詳細")]')任意のヘルプは

感謝を高く評価され

答えて

1

最初のXPathの例は、tableを選択している点で最も近い例です。 2番目の例は、一致する場合はtr —を選択します。この例では、例に応じて、bノードにtrノードではなく、希望するテキストが存在するためです。

*のため、この解決策は私が作成できるほど曖昧です。対象のテキストが常にb下になる場合は、descendant::bのように変更します。

//table[contains(descendant::*, 'Bill Statement Detail')] 

これは私が作ることができるよう、例えば与えられた、などの特定です:

//table[tr[1]/td/b['Bill Statement Detail']] 
+0

ありがとうございます。私は私のことを変えて、これを思いついた:( '/ table/tr/td/b [normalize-space(text))= "Bill Statement Detail"] /../../ ..)私はあなたのソリューションがより好きです。 – user1198316

+0

@ user1198316:ああ、良い。あなたは答えを受け入れますか? –

0

あなたは

をお勧めします

関連する問題