I am trying to divide a xml file(my.xml) like this:
<?xml version="1.0" encoding="UTF-8"?>
<Proto PName="hmmmmmmm">
<Menu id="A" ver="1">
<P>
<P name="AA" Type="X"/>
<P name="BB" Type="Y"/>
<P name="CC" Type="Z"/>
</P>
<main>
<K name="DD" type="X"/>
<K name="EE" type="Y"/>
</main>
</Menu>
<Menu id="B" ver="1">
<P>
<P name="XX" Type="X"/>
<P name="BB" Type="Y"/>
<P name="CC" Type="Z"/>
</P>
<main>
<K name="DD" type="X"/>
<K name="EE" type="Y"/>
</main>
</Menu>
<Menu id="C" ver="1">
<P>
<P name="ZZ" Type="X"/>
<P name="BB" Type="Y"/>
<P name="CC" Type="Z"/>
</P>
<main>
<K name="DD" type="X"/>
<K name="EE" type="Y"/>
</main>
</Menu>
</Proto>
I am trying to get 3 files out of the above. .i.e.
$ cat my.A.xml
<?xml version="1.0" encoding="UTF-8"?>
<Proto PName="hmmmmmmm">
<Menu id="A" ver="1">
<P>
<P name="AA" Type="X"/>
<P name="BB" Type="Y"/>
<P name="CC" Type="Z"/>
</P>
<main>
<K name="DD" type="X"/>
<K name="EE" type="Y"/>
</main>
</Menu>
</Proto>
$ cat my.B.xml
<?xml version="1.0" encoding="UTF-8"?>
<Proto PName="hmmmmmmm">
<Menu id="B" ver="1">
<P>
<P name="XX" Type="X"/>
<P name="BB" Type="Y"/>
<P name="CC" Type="Z"/>
</P>
<main>
<K name="DD" type="X"/>
<K name="EE" type="Y"/>
</main>
</Menu>
</Proto>
and similarly my.C.xml
I tried this:
$ awk '/<Menu id=/,/<\/Menu>/' my.xml
is there any way available other than perl for this xml processing.