gpt4 book ai didi

xml - 如何使用 Perl 的 XML::Twig 将子元素添加到 XML?

转载 作者:数据小太阳 更新时间:2023-10-29 02:59:45 26 4
gpt4 key购买 nike

我有以下 XML 文件:

<SOURCE_SERVER>
<SERVER HOSTNAME="serv1">
<CIFS_SERVICE NETBIOSNAME="serv1"/>
</SERVER>
<SERVER HOSTNAME="serv2">
</SERVER>
<SOURCE_SERVER>

现在,我想添加 child <CIFS_SERVICE NETBIOSNAME="serv2"/><SERVER HOSTNAME="serv2"> .如何使用 XML::Twig 执行此操作?

最佳答案

这是一个解决方案,其中包含我认为对您的问题的合理修复。下面的代码基于 filtering example文档中给出。

#!/usr/bin/perl

use strict;
use warnings;

use XML::Twig;

my $t = XML::Twig->new(
twig_roots => { SERVER => \&update },
twig_print_outside_roots => 1,
);

$t->parse(\*DATA);

sub update {
my ($t, $server) = @_;
if ( 'serv2' eq $server->att('HOSTNAME') ) {
$server->insert(
CIFS_SERVICE => { NETBIOSNAME => 'serv2' },
);
}
$server->print;
}


__DATA__
<SOURCE_SERVER>
<SERVER HOSTNAME="serv1">
<CIFS_SERVICE NETBIOSNAME="serv1" />
</SERVER>
<SERVER HOSTNAME="serv2">
</SERVER>
</SOURCE_SERVER>

输出:

C:\Temp> x
<SOURCE_SERVER>
<SERVER HOSTNAME="serv1"><CIFS_SERVICE NETBIOSNAME="serv1"/></SERVER>
<SERVER HOSTNAME="serv2"><CIFS_SERVICE NETBIOSNAME="serv2"/></SERVER>
</SOURCE_SERVER>

关于xml - 如何使用 Perl 的 XML::Twig 将子元素添加到 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1259692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com