【发布时间】:2014-01-27 17:47:51
【问题描述】:
我想提取 SPAN 和 br 之间的句子。我正在尝试使用 HTML::TreeBuilder。我是 perl 的新手。任何帮助将不胜感激。
<p>
<SPAN class="verse" id="1">1 </SPAN> ଆରମ୍ଭରେ ପରମେଶ୍ବର ଆକାଶ ଓ ପୃଥିବୀକୁ ସୃଷ୍ଟି କଲେ।
<br><SPAN class="verse" id="2">2 </SPAN> ପୃଥିବୀ ସେତବେେଳେ ସଂପୂରନ୍ଭାବେ ଶୂନ୍ଯ ଓ କିଛି ନଥିଲା। ଜଳଭାଗ ଉପରେ ଅନ୍ଧକାର ଘାଡ଼ଇେେ ରଖିଥିଲା ଏବଂ ପରମେଶ୍ବରଙ୍କର ଆତ୍ମା ଜଳଭାଗ
<br><SPAN class="verse" id="3">3 </SPAN> ଉପରେ ବ୍ଯାପ୍ତ ଥିଲା।
<br><SPAN class="verse" id="4">4 </SPAN> ପରମେଶ୍ବର ଆଲୋକକୁ ଦେଖିଲେ ଏବଂ ସେ ଜାଣିଲେ, ତାହା ଉତ୍ତମ, ଏହାପ ରେ ପରମେଶ୍ବର ଆଲୋକକୁ ଅନ୍ଧକାରରୁ ଅଲଗା କଲେ।
</p>
我做了什么
foreach $line (@lines)
{
# Now create a new tree to parse the HTML from String $str
my $tr = HTML::TreeBuilder->new_from_content($line);
# And now find all <p> tags and create an array with the values.
my @lists =
map { $_->content_list }
$tr->find_by_tag_name('p');
# And loop through the array returning our values.
foreach my $val (@lists) {
print $val, "\n";printf FILE1 "\n%s", $val ;
}
}
我无法跳过嵌套在 p 标签中的那些 html 标签。我只想提取 unicode 文本并跳过嵌套标签。
【问题讨论】:
-
到目前为止你做了什么,你的错误信息是什么?
-
HTML::TreeBuilder 是一个很好的方法。请展示您的尝试。
-
@user1126070:我能够在开始和结束标记之间获取文本,例如 SPAN 和 /SPAN 之间的文本,但不能在任何随机标记之间获取。
标签: perl html-parsing