如何使用Mojo :: DOM设置节点的属性?

时间:2019-10-19 06:39:04

标签: perl mojolicious

我试图像这样用Mojo :: DOM设置属性:

use Mojo::DOM;

my $a = Mojo::DOM->new('<a></a>');
my $a = $a->attr({ 'href' => 'https://foo/bar' });
print $a;

我希望它能打印

<a href="https://foo/bar"></a>

但我明白了

<a></a>

我在做什么错了?

1 个答案:

答案 0 :(得分:5)

需要首先find and return更改属性的元素

use warnings;
use strict;
use feature 'say';
use Mojo::DOM;

my $dom = Mojo::DOM->new('<a></a>');

$dom->at('a')->attr({ 'href' => 'https://foo/bar' });

say $dom;

这是必需的,因为整个树没有“属性”。如开头的docs say

  

虽然所有节点类型均表示为Mojo::DOM对象,但是某些方法,例如attrnamespace仅适用于元素。

(“ 元素”是“标签”类型的节点,请参见链接)