gr.d has asked for the wisdom of the Perl Monks concerning the following question:
I'm writing a perl script where I need to separate the XML(datamod) into two XML files.
Posting the perl snippet here for reference purposes<Root> <Top> <Module name="ALU"> <input name="po_ctrl"/> <bidirection name="add"/> </Module> <Module name="Po_ctrl"> <input name="ctrl"/> <output name="ctrlbus"/> <bidirection name="add"/> </Module> <input name="add"/> <input name="clk"/> <input name="da_in"/> <output name="da_out"/> <bidirection name="ctrl"/> </Root> </Top>
open(IN_FILE, "<datamod.xml") or die "Cant open input file"; open(TM1_FILE, ">tm1.xml") or die "Cant Open tm1.xml"; open(TM2_FILE, ">tm2.xml") or die "Cant Open tm2.xml"; my $chk = 0; while(my $line = <IN_FILE>){ $line =~ s/^\s+//; @xwords = split(" ",$line); if($xwords[0] ne "<Module" and $xwords[0] ne "</Module>" and $chk == +0) { print TM1_FILE $line; } else { print TM2_FILE $line; $chk = 1; } if($xwords[0] eq "</Module>" and $chk == 1) { $chk = 0; } } close TM1_FILE; close TM2_FILE;
Expected files
Temp file 1:
<Root> <Top> <input name="add"/> <input name="clk"/> <input name="da_in"/> <output name="da_out"/> <bidirection name="ctrl"/> </Top> </Root>
Temp File 2
<Root> <Top> <Module name="ALU"> <input name="po_ctrl"/> <bidirection name="add"/> </Module> <Module name="Po_ctrl"> <input name="ctrl"/> <output name="ctrlbus"/> <bidirection name="add"/> </Module> </Root> </Top>
NOTE: I'm using the XML::Simple module because the Perl script is written in it and it's tedious to convert to any other XML module.
Any help is appreciated, kindly post the rewritten snippet!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Separate a single xml into mulitple XML using perl
by GrandFather (Saint) on Jan 06, 2016 at 07:11 UTC | |
by gr.d (Novice) on Jan 06, 2016 at 07:22 UTC | |
by Laurent_R (Canon) on Jan 06, 2016 at 19:05 UTC | |
by Jenda (Abbot) on Jan 07, 2016 at 10:41 UTC | |
by Anonymous Monk on Jan 06, 2016 at 08:12 UTC | |
|
Re: Separate a single xml into mulitple XML using perl
by Jenda (Abbot) on Jan 06, 2016 at 15:39 UTC | |
|
Re: Separate a single xml into mulitple XML using perl
by Anonymous Monk on Jan 06, 2016 at 08:20 UTC | |
|
Re: Separate a single xml into mulitple XML using perl
by gr.d (Novice) on Jan 07, 2016 at 09:00 UTC |