2010-06-02 3 views

Répondre

1

Je ne sais pas si cette approche vous satisfaire, mais vous pouvez utiliser la méthode html($html) de pQuery:

Cette méthode est semblable à la célèbre fonction JavaScript/DOM innerHTML.

Si elle est appelée sans argument, cela va revenir la la chaîne HTML interne de le premier élément DOM dans l'objet pQuery .

Si appelé avec un argument chaîne HTML, cela définira le code HTML intérieur de tous les éléments DOM dans l'objet pQuery .

En ce qui pQuery pourquoi peut vous satisfaire, pour citer POD:

pQuery :: DOM est à peu près une tentative de dupliquer DOM en Perl de JavaScript. Il sous-classes HTML :: TreeBuilder/HTML :: Element donc il ya quelques différences à connaître . Voir la documentation pQuery :: DOM pour plus de détails.

1

j'utiliser pQuery, mais cela fonctionnera

#!/usr/bin/perl -- 
use strict; 
use warnings; 
use HTML::TreeBuilder; 

my $html = <<'__HTML__'; 
<div id="target">old <B>i</B><I>n</I>ner</div> 
__HTML__ 

{ 
    my $t = HTML::TreeBuilder->new_from_content($html); 

    print $t->as_HTML('<>&',' ',{}), "\n"; 

    my $target = $t->look_down(id => 'target'); 
    $target->delete_content; 
    $target->push_content(
     HTML::TreeBuilder->new_from_content(
      "<B>NEW</B>" 
     )->look_down(qw!_tag body!)->detach_content 
    ); 

    print $t->as_HTML('<>&',' ',{}), "\n"; 

} 
__END__ 
<html> 
<head> 
</head> 
<body> 
    <div id="target">old <b>i</b><i>n</i>ner</div> 
</body> 
</html> 

<html> 
<head> 
</head> 
<body> 
    <div id="target"><b>NEW</b></div> 
</body> 
</html> 

Oui, je RTFM

+0

fonctionne parfaitement, il relie même à _parent. Merci – iavian

Questions connexes