Split Big XML file Base on tag

HI
I want to split file base on tag name.

I have few header and footer on file

<?xml version="1.33" encing="UTF-8"?>
<bulkCmConfigDataFile"
        <xn:SubNetwork id="ONRM_ROOT">
                    
                        <xn:MeContext id="PPP04156">
                <xn:VsDataContainer id="PPP04156">
                    <xn:attributes>
                       <es:vsDataMeContext>
                            <es:multiStandardRbs6k>false</es:multiStandardRbs6k>
                            <es:mixedModeRadio>false</es:mixedModeRadio>
                            <es:mirrorMIBversion>dddd</es:mirrorMIBversion>
                            <es:stnNodes></es:stnNodes>
                        </es:vsDataMeContext>
                    </xn:attributes>
              </xn:VsDataContainer>
          </xn:MeContext>
          
              <xn:MeContext id="PPP04157">
                <xn:VsDataContainer id="PPP04157">
                    <xn:attributes>
                       <es:vsDataMeContext>
                            <es:multiStandardRbs6k>false</es:multiStandardRbs6k>
                            <es:stnNodes></es:stnNodes>
                        </es:vsDataMeContext>
                    </xn:attributes>
              </xn:VsDataContainer>
          </xn:MeContext>
          
       </xn:SubNetwork>
</bulkCmConfigDataFile>

OutPut :- 

FileName Will Ne : ENB_File_PPP04156.xml

<?xml version="1.33" encing="UTF-8"?>
<bulkCmConfigDataFile"
        <xn:SubNetwork id="ONRM_ROOT">
                    <xn:MeContext id="PPP04156">
                <xn:VsDataContainer id="PPP04156">
                    <xn:attributes>
                       <es:vsDataMeContext>
                            <es:multiStandardRbs6k>false</es:multiStandardRbs6k>
                            <es:mixedModeRadio>false</es:mixedModeRadio>
                            <es:mirrorMIBversion>dddd</es:mirrorMIBversion>
                            <es:stnNodes></es:stnNodes>
                        </es:vsDataMeContext>
                    </xn:attributes>
              </xn:VsDataContainer>
          </xn:MeContext>
        </xn:SubNetwork>
</bulkCmConfigDataFile>


FileName Will Ne : ENB_File_PPP04157.xml

<?xml version="1.33" encing="UTF-8"?>
<bulkCmConfigDataFile"
        <xn:SubNetwork id="ONRM_ROOT">
                        <xn:MeContext id="PPP04157">
                <xn:VsDataContainer id="PPP04157">
                    <xn:attributes>
                       <es:vsDataMeContext>
                            <es:multiStandardRbs6k>false</es:multiStandardRbs6k>
                            <es:stnNodes></es:stnNodes>
                        </es:vsDataMeContext>
                    </xn:attributes>
              </xn:VsDataContainer>
          </xn:MeContext>
        </xn:SubNetwork>
</bulkCmConfigDataFile>
         

And which tag name is your script supposed to use to determine the output filenames?

<xn:MeContext id="part_of_filename">

or:

<xn:VsDataContainer id="part_of_filename">

???

And, with well over 100 posts, what operating system and shell are you using? And, what have you tried to solve this problem on your own.

HI Its Base on Below ID

<xn:MeContext id="PPP04156">

And, what operating system and shell are you using? And, what have you tried to solve this problem on your own.

Proposals in this thread might come close to what you need. Looking at the links at the bottom sometimes is worthwhile.