2015-09-17 2 views
1

HTML структура,Perl HTML :: Treebuilder :: Xpath не в состоянии найти дочерние теги

<div class="profile-content"><section class="content-section"><h3 class="subheader">Welcome to the party</h3> 

Я хочу напечатать

Добро пожаловать на вечеринку

Кодекс как указано ниже,

my $profile= $tree->findvalue('//div[@class="profile-content"]/section[@class="content-section"]/h3[@class="subheader"]'); 

Но это ничего не печатает.

Пожалуйста, помогите мне.

С уважением

+0

выглядит правильно XPath. Пожалуйста, отредактируйте свой вопрос и добавьте полный код Perl, который вы используете, включая печать. – simbabque

ответ

2

<section> является тег HTML5, который не распознается HTML :: TreeBuilder. По умолчанию его нет во внутреннем представлении HTML.

Установка опции ignore_unknown на 0 (false) должна дать вам то, что вы хотите.

Чувствуете разницу:

> perl -MHTML::TreeBuilder -E'my $t=HTML::TreeBuilder->new; $t->parse(q{<div class="profile-content"><section class="content-section"><h3 class="subheader">Welcome to the party</h3>}); say $t->as_HTML' 
<html><head></head><body><div class="profile-content"><h3 class="subheader">Welcome to the party</h3></div></body></html> 

> perl -MHTML::TreeBuilder -E'my $t=HTML::TreeBuilder->new; $t->ignore_unknown(0); $t->parse(q{<div class="profile-content"><section class="content-section"><h3 class="subheader">Welcome to the party</h3>}); print $t->as_HTML' 
<html><head></head><body><div class="profile-content"><section class="content-section"><h3 class="subheader">Welcome to the party</h3></section></div></body></html> 
+1

Большое спасибо за вашу помощь. Он решил мою проблему. –

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