有人可以给我一条线吗?
我正在使用ruby和nokogiri来解析这样的文档(片段):
...
<dt>DOUE:</dt>
<dd>
<a href="http://ted.europa.eu">Accés al DOUE</a>
- 19/07/11
</dd>
<dt class="multi-linia">Criteris d'adjudicació:</dt>
<dd class="info-tabulada">
<strong>Ponderació:</strong>
50.00 -
<strong>Criteri:</strong>
oferta econòmica
</dd>
<dd class="info-tabulada">
<strong>Ponderació:</strong>
40.00 -
<strong>Criteri:</strong>
prestacions tècniques i funcionals
</dd>
<dd class="info-tabulada">
<strong>Ponderació:</strong>
10.00 -
<strong>Criteri:</strong>
altres elements
</dd>
<dt>another dt now</dt>
<dd>and its corresponding dd too</dd>
...
通常我有备用和连续的dt和dd元素。在这种情况下非常简单。但是在示例中,有时在dt元素之间使用多个dd元素来破坏此规则。
要解析这个列表,我有一个名为area的var区域指向该列表,我这样做:
area.search("dt").each do |dt|
dd=dt.search("./following-sibling::dd[1]/text()")
puts "#{clear_string(dt.text)}: #{clear_string(dd.text)}"
end
其中clear_string()
是一个简单的函数,可以删除不必要的空格字符。
解析时,我想将dt的文本与下面的dd文本相关联,直到下一个dt。顺便说一句,在dd元素的情况下,我只想保留它的文本,而不是它的孩子的文本。我该怎么办?