アンカータグがテキストの親であるかどうかに関係なく、テーブルセルのtext()を取得する方法がわかりません。
と:
<td class="c divComms" title="Komentarz|">
<a id="List1_Dividends_ctl01_HyperLink1" target="_blank" href="http://www.attrader.pl/pl/akcje/DRUKPAK/komunikat/EBI/none,20130104_090845_0000041461">uchwalona</a>
<div class="stcm">2013-01-29</div></td>
それなし:
<td class="c divComms" title="Komentarz|Celem...">
proponowana
<div class="stcm">2012-10-05</div>
</td>
ハッシュの要素を構成する、私は期待します
details = rows.collect do |row|
detail = {}
[
[:paystatus, 'td[7]//text()[not(ancestor::div)]'],
[:paydate, 'td[7]/div/text()'], # the 2013-01-29 or 2012-10-05 above
].each do |name, xpath|
detail[name] = row.at_xpath(xpath).to_s.strip
end
uchwalonaまたはproponowana (末尾のdivに日付がないことに注意)をキャッチしますが、現状では、a
タグのテキストを無視します。ただし、私がそうtd[7]/a/text()
しない限り、アンカーのテキスト「uchwalona」のみが読み取られます。