我無法弄清楚如何獲取表格單元格的文本(),而不管錨標記是否爲文本的父項。獲取帶有或不帶錨定標記的節點文本()
WITH:
<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>
WITHOUT:散列
<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(公告風趣但是就目前而言,它忽略了a
標記文本,除非我做td[7]/a/text()
,在這種情況下只有錨的文本「uchwalona」被讀取。
'(td [7] | td [7]/a)/ text()似乎仍然只捕獲非錨(並且我刪除了[[not(ancestor :: div)]用於測試) – Marcos
謝謝。應用聯合後,這個問題似乎與使用'#at_xpath'而不是'#xpath'有關,請參閱我的答案http://stackoverflow.com/a/14414247/1069375 – Marcos