我试图像这样用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>
我在做什么错了?
答案 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
对象,但是某些方法,例如attr
和namespace
仅适用于元素。
(“ 元素”是“标签”类型的节点,请参见链接)