作者deh3215 ()
看板Perl
标题Re: [问题] 如何消除html tag
时间Fri Apr 3 02:18:19 2009
※ 引述《b60413 (None)》之铭言:
: 关於这个问题 我知道可以用正规式直接去实做
: 但是对於正规式的使用还没有很透彻的了解
: 想问看看是否有相关的HTML module可以把html tag消除掉
: 只留下tag跟tag中的内容
: (有到cpan网站中去找 但是资料过於庞大 找得很没头绪)
: 或者有人可以跟我讲 如何利用正规式去实做吗?
: 有查到可用<(.| )*?>去消除所有的HTML Tag
: 但是消除後的文字Home与Test连在一起....希望能做到分开的效果
: 或者是结果储存在一个阵列当中
: 谢谢
: HTML Example:
: <a href="http://127.0.0.1">Home<span>Test</span></a>
: 须将Home跟Test抓出来
#-------------------------------------------
use HTML::Strip;
open(INPUT, "c:/a.txt");
@temp = <INPUT>;
chomp @temp;
foreach $t (@temp) {
my $hs = HTML::Strip->new();
my $clean_text = $hs->parse($t);
$hs->eof;
print "$clean_text";
}
结果:Home Test
#-------------------------------------------
open(input, "c:/a.txt") or die;
@temp = <input>;
chomp(@temp);
foreach (@temp) {
my $tree = HTML::TreeBuilder->new;
$tree->parse($_);
my $formatter = HTML::FormatText->new;
my $string = $formatter->format($tree);
print $string;
}
结果:HomeTest
#-------------------------------------------
用过这两个模组,第一个清的较乾净
<a href="
http://127.0.0.1">Home<span>Test</span></a> 存成变数用两个模组清,
出来结果还是有tag,不太知道为何会这样===>自己写rgexp抓要的data...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.223.225.6
※ 编辑: deh3215 来自: 140.117.168.75 (04/03 09:13)
1F:推 b60413:感谢deh3215 ~ 我在自己试看看 04/03 22:57
2F:→ deh3215:我是用第2个模组清除所有tag..搜寻"html",应该会有你要的 04/03 23:07
3F:→ deh3215:答案...要自己写rgexp抓..用模组也是可以,抓特定tagy 04/03 23:09
4F:→ deh3215:刚在test一下..两个模组多少都会有点遗漏tag..须自己手动 04/03 23:12
5F:→ deh3215:清除.. 04/03 23:13