我有一个 xml 文件,该文件由目标主机节点组成,其属性为:名称、主机和端口。
odnodes.xml:
<odnodes>
<node>
<name>malden_APP_OBC_DEV-1</name>
<host>localhost</host>
<port>20014</port>
<comments></comments>
</node>
<node>
<name>malden_APP_OBC_IT-2</name>
<host>localhost</host>
<port>20014</port>
<comments></comments>
</node>
<node>
<name>finish_IIS_OBC_UAT-1</name>
<host>localhost</host>
<port>20014</port>
<comments></comments>
</node>
<node>
<name>finish_IIS_OBC_PROD-2</name>
<host>localhost</host>
<port>20014</port>
<comments></comments>
</node>
</odnodes>
使用 Perl 我正在动态创建另一个文件,该文件创建具有以下属性的节点:名称和节点,其中节点填充有相似的节点。
Perl 用于创建组名:
my @names = split(/([_-])/, $groupnames);
my @names = @names[0];
print FILE "@names\n";
Perl 用于填充节点属性:
foreach my $group (@groups) {
my @nodes;
foreach my $node (@nodenames) {
chomp($group);
chomp($node);
if ($node =~ m/$group/) {
push (@nodes, "$node,");
}
}
chop @nodes[-1];
my $groupxml = "\t<nodeGroup name=\"$group\" nodes=\"@nodes\"\/>\n";
print ODSERVERFILE $groupxml;
}
示例组节点:
<odConfiguration>
<nodeSet>
<nodeGroup name="malden" nodes="malden_APP_OBC_DEV-1,malden_APP_OBC_IT-2" />
<nodeGroup name="finish" nodes="finish_IIS_OBC_UAT-1,finish_IIS_OBC_PROD-2" />
</nodeSet>
</odConfiguration>
问题:我如何使用 XSL 完成此任务?或者,我可以调用我的 perl 脚本来运行并将结果传递给我吗?