在 HTML::Element 的 look_down 例程 Perl 中指定多个类?



我正在使用HTML::TreeBuilder来解析一些HTML。

你能在'look_down'例程中指定多个类吗?

For在HTML中搜索时使用-

for ( $tree->look_down( 'class' => 'postbody'))

我还将在同一循环中搜索另一个类'postprofile'

有没有一种方法可以做到这一点,而不必使用新的- for ( $tree->look_down( 'class' => 'postprofile' ))

因为这带来了2组结果,而我只想要一个合并集。

我尝试使用- for ( $tree->look_down( 'class' => 'postbody||postprofile')) 然而,这不起作用,

提前感谢。

尝试使用模式而不是字符串,即

$tree->look_down( 'class' => qr/^(?:postbody|postprofile)$/)

Jambo,我不是想冒犯你,但是请阅读说明书。我给你的问题加了链接。

我将假设你没有阅读文档,因为你找不到它们。让我们来解决的问题:

如何查找所需文档

在线:

  • search.cpan.org是一个用于搜索CPAN模块及其文档的主要网站。

  • perldoc.perl.org有几个最新版本Perl的完整发布文档。

命令行:

  • perldoc显示了一个目录,列出了您可以阅读的文档的不同部分。

  • perldoc -f function是一种快速搜索perlfunc的方法,只查看一个函数的信息。

  • perldoc Module::Name::Here将显示一个模块的文档

  • perldoc perlpod是阅读部分文档的示例,在本例中是关于POD格式化的文章。

我读哪一件事?

这些都很好,但是你怎么知道去哪里看?我的意思是,我用了一个叫做"look_down"的东西。医生在哪里?

在这种情况下,您可以看到"look_down"总是像这样被调用$somevar->look_down(blarg)。找到$somevar的来源。它是什么样的物体?最坏的情况是,您发现它是其他调用的结果,现在您必须找到该调用的文档并查看返回的内容。但步骤是一样的。递归推进。最终你会得到my $tree = HTML::TreeBuilder->new_from_content()或类似的东西。现在你可以在HTML::TreeBuilder中阅读new_from_content文档了。嘿,我们得到了一个HTML::Tree对象,它是HTML::Element的子类!所以我们检查两个类。哇,look_down在HTML::Element.

如果您有从其他模块导入的例程,这就有点棘手了。希望你的代码的作者足够体贴,明确地列出了他的例程来自哪里:

use Some::Module qw( useful_sub  confusing_sub );

这意味着useful_subconfusing_sub来自Some::Module;

如果你很不幸,你的作者只写了use Some::Module;,这意味着你得到了所有默认的导出。这意味着你需要阅读文档来找出导入的内容。

出于可维护性的考虑,您可以通过始终准确地指定从函数导入的例程来减少这种噩梦。如果你想导入NOTHING,你可以指定为:use Some::Module ();

在查找普通子名称时,记住它们可能是实际的函数是有帮助的。所以别忘了搜索perldoc.

最后,我希望你觉得这是有用的。r - ring TFM是一种非常强大的技术,学习如何找到相关文档是解锁这种能力的隐藏技能。Perl有大量的文档需要阅读,当您不知道在哪里查找时,它可能会令人生畏。

相关内容

  • 没有找到相关文章

最新更新