需要建议使用HTML-TreeBuilder-XPath findnodes()方法逐个打印匹配的结果

时间:2014-03-03 07:05:13

标签: html xml perl xpath html-treebuilder

我正在使用 HTML-TreeBuilder-XPath 解析html内容 在Perl。我有我需要的数据的xpath位置。我面临的问题是,xpath $html->findnodes()有几个匹配,由单个结果返回,但我需要逐个打印。需要一些建议。谢谢。

2 个答案:

答案 0 :(得分:3)

您可以使用

进行迭代
  for my $node (@$paraelements)  { ..... }

更完整的例子

  use HTML::TreeBuilder::XPath;
  my $tree= HTML::TreeBuilder::XPath->new;
  $tree->parse_file( "mypage.html");
  my $paraelements= $tree->findnodes( '//p') ;

  for my $node (@$paraelements)  {
      say $node->as_HTML() ;
  }

答案 1 :(得分:0)

它返回对列表的引用(ARRAYREF)。要获取列表,请在变量前加一个@,告诉Perl将其视为列表的[位置/内存地址],就像JIT的示例代码一样