【发布时间】:2012-03-28 17:54:43
【问题描述】:
我必须收集所有类别名称以及它们下的所有 div,类以“config-entry”开头。
<h2>category 1</h2>
<div class='clear10'></div>
<div class='config-entry selected-block'>...</div>
<div class='config-entry '>...</div>
<div class='config-entry '>...</div>
<div class='config-entry '>...</div>
<h2>category 2</h2>
<div class='clear10'></div>
<div class='config-entry selected-block'>...</div>
<div class='config-entry '>...</div>
<div class='config-entry '>...</div>
<div class='config-entry '>...</div>
<div class='config-entry '>...</div>
<h2>category 3</h2>
<div class='clear10'></div>
<div class='config-entry selected-block'>...</div>
<div class='config-entry '>...</div>
<h2>category 4</h2>
<div class='clear10'></div>
<div class='config-entry selected-block'>...</div>
<div class='config-entry '>...</div>
<div class='config-entry '>...</div>
<div class='config-entry '>...</div>
我正在使用 xpath //h2[1]/following-sibling::h2[1]/preceding-sibling::div[starts-with(@class,'config-entry')] 喜欢:
categories = root.xpath("//h2")
for i in xrange(len(categories)):
print "----%s----" % categories[i].text
contents = root.xpath("//h2[1]/following-sibling::h2[1]/preceding-sibling::div[starts-with(@class,'config-entry')]")
print len(contents)
此代码仅适用于类别 1。选择类别 1 和 2 之间的所有 div,但稍后会搞砸。我玩过h2[1],将其更改为 0,2,3 但没有具体内容。有什么线索吗?
【问题讨论】: