Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml Perl foreach循环dilema_Xml_Perl_Loops_Foreach - Fatal编程技术网

Xml Perl foreach循环dilema

Xml Perl foreach循环dilema,xml,perl,loops,foreach,Xml,Perl,Loops,Foreach,我正在循环遍历XML节点,并为每个相似的节点创建一个组,例如以下节点: <node name="ps1_uat1" host="" port="20014" /> <node name="ps1_uat2" host="" port="20014" /> <node name="ps1_uat3" host="" port="20014" /> 非常感谢您的帮助。我相信您需要将两行代码移出内部for循环。试试这个: foreach my $group (@g

我正在循环遍历XML节点,并为每个相似的节点创建一个组,例如以下节点:

<node name="ps1_uat1" host="" port="20014" />
<node name="ps1_uat2" host="" port="20014" />
<node name="ps1_uat3" host="" port="20014" />

非常感谢您的帮助。

我相信您需要将两行代码移出内部for循环。试试这个:

foreach my $group (@groups) {
my @nodes;
 foreach my $node (@nodenames) {

    chomp($group);
    chomp($node);

    if ($node =~ m/$group/) {
       push (@nodes, "$node,");
    }
 }
 // These 2 lines go out
 my $groupxml = "\t<nodeGroup name=\"$group\" nodes=\"@nodes\" \/>\n";
 print ODSERVERFILE $groupxml;
 }
}
foreach my$group(@groups){
我的@nodes;
foreach my$node(@nodenames){
chomp($组);
chomp($node);
如果($node=~m/$group/){
推送(@nodes,“$node”);
}
}
//这两条线断了
my$groupxml=“\t\n”;
打印ODSERVERFILE$groupxml;
}
}

就是这样。这么简单,却错过了。非常感谢你。
<nodeGroup name="ps1" nodes="ps1_it," />
<nodeGroup name="ps1" nodes="ps1_it, ps1_uat1," />
<nodeGroup name="ps1" nodes="ps1_it, ps1_uat1, ps1_uat2," />
<nodeGroup name="ps1" nodes="ps1_it, ps1_uat1, ps1_uat2, ps1_uat3," />
foreach my $group (@groups) {
    my @nodes;
    foreach my $node (@nodenames) {
        chomp($group);
        chomp($node);
        if ($node =~ m/$group/) {
            push (@nodes, "$node,");
            my $groupxml = "\t<nodeGroup name=\"$group\" nodes=\"@nodes\" \/>\n";
            print ODSERVERFILE $groupxml;
        }
    }
}
foreach my $group (@groups) {
my @nodes;
 foreach my $node (@nodenames) {

    chomp($group);
    chomp($node);

    if ($node =~ m/$group/) {
       push (@nodes, "$node,");
    }
 }
 // These 2 lines go out
 my $groupxml = "\t<nodeGroup name=\"$group\" nodes=\"@nodes\" \/>\n";
 print ODSERVERFILE $groupxml;
 }
}