【发布时间】:2017-05-12 10:45:52
【问题描述】:
我正在尝试使用for 循环将数组@cpuinfo 中的每个项目放入单独的<cpu> 元素中
在 XML 文档中
使用XML::Generator。
# @cpuinfo contain cpu information of multiple cpu's
use XML::Generator;
my $gen = XML::Generator->new( 'escape' => 'always', 'pretty' => 10 );
my $xml = $gen->servers(
$gen->server(
$gen->cpuinfo(
foreach $r (@cpuinfo){
$gen->cpu;
( { $gen->cpu( @cpuinfo[$r] );
}
)
}
)
),
);
【问题讨论】:
-
欢迎使用 Stack Overflow 和 Perl 标签。我已经修复了您问题中代码中损坏的标记。下次请在提交之前重新阅读您的帖子。
-
您的代码有语法错误。目前尚不清楚这些是否来自将其复制到问题中,或者它们是否存在于您的真实代码中。您应该edit 您的问题并包括您正在运行的实际代码,以及实际缩进和所有内容。要将代码显示为 Stack Overflow 中的代码,请选择所有代码并按键盘上的 ctrl + k 或单击编辑器上方的 {} 按钮。还请向我们展示
@cpuinfo可能包含的内容、它现在生成的 XML 的样子以及您期望的 XML 类型的示例。 -
谢谢辛巴克
-
是的,我认为您可能需要在这里回溯,并提供输入数据和所需的输出 - 我认为这可以做得更好,但在不知道这些事情的情况下我无能为力。
-
编辑做得很好,但你的循环中间还有一个
;。您甚至可以从缩进代码的方式中看到这一点(这很好,顺便说一句)。有$gen->cpu;,后跟一个开放括号(。这实质上是在没有 args 的情况下调用$gen->cpu,然后创建一个空列表,其中包含一个包含一条语句的块,这应该是语法错误。你真的应该打开use strict和use warnings。你还有@cpuinfo[$r],应该是$cpuinfo[$r]sigil 需要引用那个值是什么,并且数组元素是标量。
标签: xml perl perl-module