如何使用HTML :: Element

时间:2016-09-27 16:10:18

标签: html perl

如何使用HTML::Element创建一个缺少值的属性的HTML元素?

例如,checked属性通常没有值,如下所示:

<input checked name="field" type="checkbox" />

但是,下面的示例为我们提供了一个checked属性,其中包含一个空字符串作为值:

<input checked="" name="field" type="checkbox" />

代码:

use HTML::Element;
my $h = HTML::Element->new ( 'input' );

$h->attr ( type => 'checkbox' );
$h->attr ( name => 'field' );
$h->attr ( checked => '' );

print STDOUT $h->as_HTML, "\n";

1 个答案:

答案 0 :(得分:2)

编辑:ThisSuitIsBlack上面没有正确的解决方案:

$h->attr ( checked => 'checked' );

有效。如果他把它作为答案添加,我会删除我的。不知道怎么可以从文档中得到它,但是......如果它出现在某个地方,我很乐意让别人指出它。

旧解决方案: 这不是一个完美的解决方案,但我让它做了以下工作:

use HTML::Element;
my $h = HTML::Element->new ( 'input', 'checked' );

$h->attr ( type => 'checkbox' );
$h->attr ( name => 'field' );

print STDOUT $h->as_HTML, "\n";

产生这个:

<input checked name="field" type="checkbox" />

但必须有更好的方法来做到这一点......

CPAN文件说明如下:

  

请注意,将属性设置为undef(而不是&#34;&#34;,为空   string)实际上删除了属性。

这是$h->attr ('checked');无法工作的原因,但必须有一种方法可以在元素创建后添加非值属性。对于如何做到这一点并不明显(至少对我而言)。