Changeset 1382

Show
Ignore:
Timestamp:
08/19/06 12:30:33
Author:
miyagawa
Message:
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/plagger/lib/Plagger/Plugin/Filter/EntryFullText.pm

    r1377 r1382  
    233233} 
    234234 
     235sub xml_escape { 
     236    for my $x (@_) { 
     237        $x = Plagger::Util::encode_xml($x); 
     238    } 
     239} 
     240 
    235241sub extract { 
    236242    my($self, $args) = @_; 
     
    258264            my @children = $tree->findnodes($self->{extract_xpath}->{$capture}); 
    259265            if (@children) { 
    260                 $data->{$capture} = $children[0]->as_HTML; 
     266                no warnings 'redefine'; 
     267                local *HTML::Element::_xml_escape = \&xml_escape; 
     268                $data->{$capture} = $children[0]->as_XML; 
    261269            } else { 
    262270                Plagger->context->log(error => "Can't find node matching $self->{extract_xpath}->{$capture}"); 
  • trunk/plagger/lib/Plagger/Util.pm

    r997 r1382  
    2323    } 
    2424} 
    25  
    26  
    2725 
    2826sub strip_html { 
     
    148146} 
    149147 
     148my %entities = ( 
     149    '&' => '&', 
     150    '<' => '&lt;', 
     151    '>' => '&gt;', 
     152    "'" => '&quot;', 
     153); 
     154 
     155my $entities_re = join '|', keys %entities; 
     156 
     157sub encode_xml { 
     158    my $stuff = shift; 
     159    $stuff =~ s/($entities_re)/$entities{$1}/g; 
     160    $stuff; 
     161} 
     162 
    1501631;