I actually asked this question in a different form before. I did get a great answer but I thought I needed more clarifications, so I am asking it in its whole form again.
The user would script something like:
$ABC->Command(100, 100);
my $group = "1";
my $id = "1";
my $value1 = "Some Process A Happened";
$rep->getParameter($group, $id, $value1);
$ABC->Command(100, 100);
my $group = "1";
my $id = "2";
my $value1 = "Some Process B Happened";
$rep->getParameter($group, $id, $value1);
$ABC->Command(100, 100);
my $group = "2";
my $id = "1";
my $value1 = "Some Process A Happened";
$rep->getParameter($group, $id, $value1);
$ABC->Command(100, 100);
my $group = "2";
my $id = "1";
my $value1 = "Some Process Happened";
$rep->getParameter($group, $id, $value1);
$ABC->Command(100, 100);
my $group = "3";
my $id = "1";
my $value1 = "Some Process Happened";
$rep->getParameter($group, $id, $value1);
$ABC->SomeImage($image) $desc = "Some info";
$rep->getImage($image, $desc);
$rep->getResult("Pass")
This would have to generate an XML like:
<?xml version="1.0" encoding="UTF-8" ?>
<TestResult xmlns="http://test.com/automate" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://test.com/automate">
<Result>Pass</Result>
<Comments>Executed Successfully</Comments>
<Parameters>
<ParameterGroup ID="Group1">
<Parameter key="Key1">Some Value</Parameter>
<Parameter key="Key2">Some Value</Parameter>
<Parameter key="Key3">Some Value</Parameter>
</ParameterGroup>
<ParameterGroup ID="Group2">
<Parameter key="Key1">Some Value</Parameter>
<Parameter key="Key2">Some Value</Parameter>
<Parameter key="Key3">Some Value</Parameter>
</ParameterGroup>
<ParameterGroup ID="Group3">
<Parameter key="Key1">Some Value</Parameter>
<Parameter key="Key2">Some Value</Parameter>
<Parameter key="Key3">Some Value</Parameter>
</ParameterGroup>
</Parameters>
<Images>
<Image key="ImageTag1">info</Image>
<Image key="ImageTag2">info</Image>
<Image key="ImageTag3">info</Image>
</Images>
</TestResult>
The image values and parameter values will be input at different points of time. But they would have to be collected and placed inside the Images
element, similarly for Parameters
. What approach should I follow here? Some code samples, please.
edited:
I have something like
$xml = {
ParameterGroup => [
{
ID => 'Group1',
Parameter => {
Key1 => {content => 'Some Value'},
Key2 => {content => 'Some Value'},
Key3 => {content => 'Some Value'},
},
},
{
ID => 'Group2',
Parameter => {
Key1 => {content => 'Some Value'},
Key2 => {content => 'Some Value'},
Key3 => {content => 'Some Value'},
},
},
]
};
print XMLout(
$xml,
RootName => 'Parameters',
KeyAttr => 'value',
);
as the structure but these are fixed structures. How can I make this dynamic to suit the users' requirement?