Search code examples
xmlperlxml-twigxml-libxmlxml-simple

Using Perl Xml Module - append value in xml file


File: SN.xml

<?xml version="1.0"?>
<root>
    <category name="Cat1" id="C1">
        <subcat name="SCName1" sid="SC1">
            <prod pname='prod1' pid='p1'></prod>
            <prod pname='prod2' pid='p2'></prod>
            <prod pname='prod3' pid='p3'></prod>
        </subcat>
    </category>

</root>

I want below output:

<?xml version="1.0"?>
    <root>
        <category name="Cat1" id="C1">
            <subcat name="SCName1" sid="SC1">
                <prod pname='prod1' pid='p1'></prod>
                <prod pname='prod2' pid='p2'></prod>
                <prod pname='prod3' pid='p3'></prod>
              **<prod pname='prod4' pid='p4'></prod>**
            </subcat>
        </category>

    </root>

Please help me to get this ouptput using modules.

Thanks in advance.


Solution

  • Using XML::XSH2, a wrapper around XML::LibXML:

    open SN.xml ;
    $p := insert element prod append /root/category/subcat ;
    set $p/@pname 'prod4' ;
    set $p/@pid   'prod4' ;
    save :b ;