in reply to Re^2: How to add child nodes using XMLLib
in thread How to add child nodes using XMLLib

Well, you want it after Results, so after adding results would be the easiest.
my $result = 'Pass'; my %ParamGroup = ( ParameterGroupID => '1' ); my $ns = '...'; my $schema = '...'; my $xsi_ns = 'http://www.w3.org/2001/XMLSchema-instance'; my $doc = XML::LibXML::Document->new('1.0', 'utf-8'); my $root = $doc->createElementNS($ns, "TestResult"); $root->setAttributeNS($xsi_ns, 'xsi:schemaLocation' => $schema); { my $result_node = $doc->createElement('result'); $result_node->appendTextNode($result); $root->appendChild($result_node); } { my $params_node = $doc->createElement("Parameters"); for my $param_group (keys %ParamGroup) { my $param_group_node = $doc->createElement($param_group); $param_group_node->appendTextNode($ParamGroup{$param_group}); $params_node->appendChild($param_group_node); } $root->appendChild($params_node); } $doc->setDocumentElement($root);

Replies are listed 'Best First'.
Re^4: How to add child nodes using XMLLib
by Perllace (Acolyte) on Apr 25, 2011 at 06:34 UTC
    Thanks ikegami... I get an output like
    <Parameters> <ParameterGroupID>1</ParameterGroupID> </Parameters>
    if I want to add nodes like this..how should I use set attribute ?
    <Parameters> <ParameterGroup ID="Group1"> <Parameter key="Key1">Some Value</Parameter> <Parameter key="Key2">Some Value</Parameter> <Parameter key="Key3">Some Value</Parameter> </ParameterGroup> </Parameters>
    Thanks a lot
      You've already shown you know how to create nodes, give them attributes, and add children to them. What's the problem? And like I asked on SO, what have you tried? I can't point out your error if you don't show your code.
        My problem is that with the current code, (the one that displayed above) I get this output
        <Parameters> <ParameterGroupID>1</ParameterGroupID> </Parameters>
        But i need it like this format
        <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> </Parameters>
        The code by using XML::Simple is something like this..
        my $xml = { ParameterGroup => [ { ID => 'Group1', Parameter => { Key1 => {content => 'Some Value'}, Key2 => {content => 'Some Value'}, Key3 => {content => 'Some Value'}, }, }, { ID => 'Group1', Parameter => { Key1 => {content => 'Some Value'}, Key2 => {content => 'Some Value'}, Key3 => {content => 'Some Value'}, }, }, ]}; print XMLout($xml, RootName => 'Parameters', KeyAttr => 'key', );
        But i want to do the same using LibXML. I hopw my question is clear
          A reply falls below the community's threshold of quality. You may see it by logging in.