in reply to Re: HTML::Strip returning blank value after parsing
in thread HTML::Strip returning blank value after parsing

Hi,

Aplology for the formatting while posting the problem, i have again updated it now, also the code is fully compiled.

Below is the part of the code:
script starts ... ... ... While(25k to 50k records from DB) { my $field = ''; $field = $h->{'HTML_FIELD'} if(defined($h->{'HTML_FIELD'})); $field = &html_parsing($field) if($field); } sub html_parsing { my $raw_html = shift; my $hs = HTML::Strip->new(); my $string = $hs->parse( $raw_html ); ## Problem: here the $string is becoming blank after parsing $hs->eof; return $string; } ... ... ... script ends
Also, while processing the DATABASE records, below is the one of the dummy html data(from DATABASE) which became blank after html parsing:
$field = qq(<p>With a solid oak top and white painted legs, the New En +gland Side Table compliments any interior design scheme. This stylish + side table comprises a magazine shelf and fluted detailing to the le +gs.</p> <p>The perfect partner to our New England Coffee Table.</p> < +p><br />H43cm L51cm W41cm</p>);


whereas if i'll check only this record through a sample script then after html parsing it value is as expected from DATABASE(not blank)

Thanks
Jaspreet Sethi

Replies are listed 'Best First'.
Re^3: HTML::Strip returning blank value after parsing
by Anonymous Monk on Jan 16, 2013 at 13:35 UTC

    As you can see here, $field is reduced in length (some tags are eliminated), so $string clearly isn't blank. original length 294, new length 267

    #!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw' dd '; use HTML::Strip; my $field = qq(<p>With a solid oak top and white painted legs, the New + England Side Table compliments any interior design scheme. This styl +ish side table comprises a magazine shelf and fluted detailing to the + legs.</p> <p>The perfect partner to our New England Coffee Table.</p +> <p><br />H43cm L51cm W41cm</p>); dd length $field; $field = html_parsing( $field ); dd length $field; sub html_parsing { my $raw_html = shift; my $hs = HTML::Strip->new(); my $string = $hs->parse( $raw_html ); ## Problem: here the $string is becoming blank after parsing $hs->eof; return $string; } __END__ 294 267
      Even am getting valid value of $field(not blank) when i'll execute it as a single record but the problem lies when am fetching 25k-40k records in a single go from oracle DATABASE.
      Below is the perl suedo code mentioning the problem :
      script start .... .... select * from table where some condition = some value .... while(around 25k-40k records) { my $field = ''; $field = $h->{'HTML_FIELD'} if(defined($h->{'HTML_FIELD'})); $field = &html_parsing($field) if($field); ##4-5 $field values come blank here while their ##corresponding $h->{'HTML_FIELD'} values ##are well defined in DATABASE with html tags and ##english phrases and ideally should not be blank when ##passed though html parser. } sub html_parsing { my $raw_html = shift; my $hs = HTML::Strip->new(); my $string = $hs->parse( $raw_html ); ## Problem: here the $string is becoming blank after parsing. $hs->eof; return $string; } .... .... script ends

        Below is the perl suedo code mentioning the problem :

        Once again, that is not any different from your previous postings -- it shows no problem

        I'm not sure what you're expecting

Re^3: HTML::Strip returning blank value after parsing
by Anonymous Monk on Jan 16, 2013 at 12:41 UTC
    Where do you update the database with the new value?