Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > xpath собрать значение ссылок на странице


Автор: burakov 14.12.2011, 16:30
Добрый день

пытаюсь освоить xpath

Код

  use HTML::TreeBuilder::XPath;
  my $tree= HTML::TreeBuilder::XPath->new;
  $tree->parse_file( "mypage.html");
  my $nb=$tree->findvalue( '/html/body//p[@class="section_title"]/span[@class="nb"]');
  my $id=$tree->findvalue( '/html/body//p[@class="section_title"]/@id');

  my $p= $html->findnodes( '//p[@id="toto"]')->[0];
  my $link_texts= $p->findvalue( './a'); # the texts of all a elements in $p
  $tree->delete; # to avoid memory leaks, if you parse many HTML documents 



my $link_texts= $p->findvalue( './a'); # the texts of all a elements in $p
вот строчка собирает текстовое описание ссылок
а как с помощью xpath получить значение href="(.+?)"

никак не могу понять...
подскажите
спасибо


Автор: Pfailed 14.12.2011, 18:28
Код

$href = $node->attr('href');

Автор: burakov 14.12.2011, 21:40
Не врубаюсь....
нужно побольше кода.

я  пытался искать ссылки так
Код

my $tree = HTML::TreeBuilder::XPath->new;
$tree -> parse_file ($file1);    
my @value = $tree -> findnodes_as_string ('//div[@class="highslide-gallery"]/a[@href]');
        foreach  (@value) {
                  print $_;
                }



можно на моем примере найти эту href?

Автор: Pfailed 15.12.2011, 05:40
Код

@nodes = $tree->findnodes("'//div[@class="highslide-gallery"]/a");
$href = $_->attr('href') for @nodes;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)