我有一个像这样的 XML 字符串:
<DATA>
<CHILD_DATA ATVAL="value1"/>
<CHILD_DATA />
</DATA>
我想要的最终输出是:
<DATA>
<CHILD_DATA ATVAL="value1"/>
<CHILD_DATA ATVAL="value2"/>
</DATA>
My twig $t
is at <DATA>
。现在我想为第二个添加一个属性<CHILD_DATA />
。属性是ATVAL="value2"
。我尝试了以下方法:
$t->last_child('CHILD_DATA')->set_att{"ATVAL","value2"};
这不起作用。这段代码有什么问题?还有其他方法可以做到这一点吗?
正如乔恩向您暗示的那样,您发布的代码中有语法错误。您应该看到如下编译错误:
测试行 18 处的语法错误,靠近“->set_att{”
由于编译错误,program.pl 的执行中止。
但是,您可能已在答案中输入了代码,因此该代码与您实际执行的操作不匹配。始终将实际代码放入您的问题中,而不是重新输入它,并且尽可能发布完整的程序。当您发布程序时,我不必从头开始调试我认为您可能正在做的事情。 :)
这是一个可以完成您想要的操作的程序:
use XML::Twig;
my $xml = <<'XML';
<DATA>
<CHILD_DATA ATVAL="value1"/>
<CHILD_DATA />
</DATA>
XML
my $twig= XML::Twig->new( keep_spaces => 1 );
$twig->parse( $xml );
$twig
->root
->last_child('CHILD_DATA')
->set_att("ATVAL" => "value2");
$twig->flush;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)