【发布时间】:2011-04-21 23:03:50
【问题描述】:
伙计们,
关于 HTML::Treebuilder 的信息太多了,我很惊讶我找不到答案,希望我不仅仅是错过了它。
我要做的只是在父节点之间解析,所以给定一个像这样的 html 文档
<html>
<body>
<a id="111" name="111"></a>
<p>something</p>
<p>something</p>
<p>something</p>
<a href=xxx">something</a>
<a id="222" name="222"></a>
<p>something</p>
<p>something</p>
<p>something</p>
....
</body>
</html>
我希望能够获取关于第一个锚标签 (111) 的信息,然后处理 3 p 标签,然后获取下一个锚标签 (222),然后处理那些 p 标签等。
很容易找到每个锚标签
use HTML::TreeBuilder;
my $tree = HTML::TreeBuilder->new();
$tree->parse_file("index-01.htm");
foreach my $atag ( $tree->look_down( '_tag', 'a' ) ) {
if ($atag->attr('id')) {
# Found 'a' tag, now process the p tags until the next 'a'
}
}
但是一旦我找到了那个标签,我该如何获取所有的 p 标签直到下一个锚点?
TIA!!
【问题讨论】:
标签: perl html-parsing