免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6511 | 回复: 12
打印 上一主题 下一主题

请教:perl生成XML文档时如何调用变量 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-30 23:27 |只看该作者 |倒序浏览
#!/usr/bin/perl
use strict;
use warnings;
use XML::Generator;
my ($xml, $output, $run_config, $config, $output_file,@acl_rule,$acl_rule,$per_text);
$run_config="rule deny 192.168.1.1  0.0.0.255
rule deny 192.168.2.1  0.0.0.128
rule permit any";
@acl_rule = split (/\n/,$run_config);
for (my $i=0; $i<@acl_rule; $i++){
     $per_text .="\$xml->rule('$acl_rule[$i]'),\n";
}

$xml = new XML::Generator ('conformance' => 'strict',    'escape' => 'always',    'pretty' => 3,  'encoding'=>'GBK');
$output = $xml->function ({ 'funcname' => 'acl_black_list', 'mode' => 'predefined','no' => 'no'},
$xml->task_name('20130502152226_815403777'),
$xml->device(
         $xml->device_name ('202.197.12.200'),
         $xml->interface_name('GigabitEthernet0/0/2'),
         $xml->rule_list(
                   $per_text;      ???????????????????????????
         )
     )
);
print $xml->xmldecl."$output";


问号前的变量$per_text是前面循环出来的xml格式的字符串,但不知怎么调用,烦请解答!

论坛徽章:
0
2 [报告]
发表于 2013-10-01 12:21 |只看该作者
有大侠吗?

论坛徽章:
0
3 [报告]
发表于 2013-10-01 17:08 |只看该作者
求助,求助,感谢各位帮帮忙啊!!!

论坛徽章:
0
4 [报告]
发表于 2013-10-01 17:29 |只看该作者
$xml->rule('rule deny 192.168.1.1 0.0.0.255'),里面的“>”在调用时被认为是大于号,在xml显示$xml-&gt;rule('rule deny 192.168.1.1 0.0.0.255'),所以不能正确生成xml,怎么才能不认为是大于号呢?

论坛徽章:
0
5 [报告]
发表于 2013-10-01 19:41 |只看该作者
经师兄指点,去掉'conformance' => 'strict',    'escape' => 'always',  可以调用参数,但头部显示又有了问题,不显示版本号了!何故??

论坛徽章:
0
6 [报告]
发表于 2013-10-02 08:12 |只看该作者
国庆了,祝福各位节日快乐!

论坛徽章:
0
7 [报告]
发表于 2013-10-02 10:33 |只看该作者
还是用perl的多啊,大家都没过节吗???

论坛徽章:
0
8 [报告]
发表于 2013-10-03 08:21 |只看该作者
perl,早安!假期进入第三天了,抓紧时间玩啊!

求职 : 软件工程师
论坛徽章:
3
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00程序设计版块每日发帖之星
日期:2015-12-13 06:20:00程序设计版块每日发帖之星
日期:2016-05-05 06:20:00
9 [报告]
发表于 2013-10-03 20:55 |只看该作者
字符串内插变量, 要用双引号引起。在上下文中,变量都是有效的。

论坛徽章:
0
10 [报告]
发表于 2013-10-03 21:57 |只看该作者
回复 9# 104359176

感谢假期里无私奉献的朋友!不是双引号的问题,现在注释掉'conformance' => 'strict',    'escape' => 'always' 就可以调用了,但xml的版本号那一行没了,不知怎么解决?
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP