veerubiji has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: help me with perl script that add xml attritutes
by moritz (Cardinal) on Nov 04, 2011 at 15:13 UTC
Re: help me with perl script that add xml attritutes
by choroba (Cardinal) on Nov 04, 2011 at 22:14 UTC
    I usually use XML::XSH2 for XML manipulation. In this case, I needed to wrap your input file into <xml>...</xml> and to add _ between subject and names to make it a valid XML. The output is also different to your expected output: spaces between attributes are not optional in XML.
    my $input := open 935956.xml ; my $student_hash := hash concat(@name, '#', @number) $input/xml/data/s +tudent ; my $semister_hash := hash ../@number $input/xml/data/semister/@subject +_names ; my $out := create xml ; for my $university in $input/xml/university { my $new_uni := cp $university into $out/xml ; for my $student in $new_uni//student { cp xsh:lookup('student_hash', concat($student/@name, '#', $stu +dent/@number))/@address into $student ; for $student/semester cp xsh:lookup('semister_hash', ./@number +) into . ; } } save :f 935956-out.xml $out ;
      thanks its working