如何,我可以得到以下,一旦所有元素,如:通過機械化獲得所有標籤追蹤信息? (紅寶石)
<div id="exemple">
<h2 class="target">foo</h2>
<p>bla bla</p>
<ul>
<li>bar1</li>
<li>bar2</li>
<li>bar3</li>
</ul>
<h4>baz</h4>
<ul>
<li>lot</li>
</ul>
<div>of</div>
<p>possible</p>
<p>tags</p>
<a href="#">after</a>
</div>
我需要檢測<h2 class="target">
,並得到所有標籤到下一個<h4>
而忽略<h4>
和所有如下標籤(如果<h4>
不存在,我必須讓所有標籤的父結束[此處的<div>
結束])
的內容是動態的和不可預知的唯一的規則就是:我們知道有一個目標,有一個(或結束的元素) 。我需要獲得所有標籤,並排除所有其他標籤。
有了這個爲例,我需要得到HTML如下:
<h2 class="target">foo</h2>
<p>bla bla</p>
<ul>
<li>bar1</li>
<li>bar2</li>
<li>bar3</li>
</ul>
這樣我就可以得到:target = page.at('#exemple .target')
我知道next_sibling
方法,但我怎麼可以測試當前節點的標籤的類型?
我想類似的東西當然節點樹:
html = ''
while not target.is_a? 'h4'
html << target.inner_html
target = target.next_sibling
我怎樣才能做到這一點?
這更多的是一個[標籤:XPath]中的或[標籤:CSS選擇器]的問題比它大約機械化。如果你添加了這些,你會得到更多的觀衆。 –