2010-06-02 2 views

ответ

1

Я не уверен, если этот подход будет удовлетворять вас, но вы можете использовать метод html($html) из pQuery:

Этот метод сродни известной JavaScript/DOM функции innerHTML.

При вызове без аргументов, это будет вернуть внутреннюю HTML строку первый DOM элемента в объекте pQuery .

Если вызывается с HTML строка аргумента, это установит внутренний HTML всех DOM-элементов в объекте pQuery .

Насколько почему pQuery может удовлетворить вас, цитата из СОД:

pQuery :: DOM примерно попытка дублировать DOM в JavaScript в Perl. Это подклассы HTML :: TreeBuilder/HTML :: Элемент Есть несколько отличий, которые должны быть . Подробнее см. Документацию pQuery :: DOM .

1

Я хотел бы использовать pQuery, но это будет работать

#!/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> 

Да, я RTFM

+0

работает идеально, даже ссылки обратно _parent. благодаря – iavian

Смежные вопросы