XML parsing using shell script

I have a xml file like this

<bul:collectionStrategy name="strategy1">
                    <bul:collectionTemplateGroup name="15min group"/>
                    <bul:collectionTemplateGroup name="hourly group"/>
</bul:collectionStrategy>
<bul:CollectionTemplateGroup name="hourly group" >
                    <bul:template name="Board parameters"/>
</bul:CollectionTemplateGroup>
<bul:CollectionTemplateGroup name="15min group" >
                    <bul:template name="Test 15min parameters"/>       
</bul:CollectionTemplateGroup>
<bul:CollectionTemplate name="Board parameters" >
                    <bul:parameters id="5629"/>
                    <bul:parameters id="22002"/>
                    <bul:parameters id="22001"/>
</bul:CollectionTemplate>
<bul:CollectionTemplate name="Test 15min parameters" >
                    <bul:parameters id="151524"/>
                    <bul:parameters id="151525"/>
</bul:CollectionTemplate>

Now i need to get the hourly parameters in a separate file Parameter1hr.txt and 15min parameters in Parameter15min.txt using shell script
Parameter1hr.txt should have this

5629
22002
22001

Parameter15min.txt should have this

151524
151525
awk -F"\"" '/<[\/]*bul:CollectionTemplate[> ]/{x=!x;f=(x&&/15min/)?"Parameter15min.txt":"Parameter1h.txt"}x&&/id/{print $(NF-1) >> f ; close f}' infile

---------- Post updated at 10:32 PM -

Use nawk instead of awk if running SunOS / Solaris

# rm Parameter15min.txt Parameter1h.txt
# cat tst
<bul:collectionStrategy name="strategy1">
                    <bul:collectionTemplateGroup name="15min group"/>
                    <bul:collectionTemplateGroup name="hourly group"/>
</bul:collectionStrategy>
<bul:CollectionTemplateGroup name="hourly group" >
                    <bul:template name="Board parameters"/>
</bul:CollectionTemplateGroup>
<bul:CollectionTemplateGroup name="15min group" >
                    <bul:template name="Test 15min parameters"/>
</bul:CollectionTemplateGroup>
<bul:CollectionTemplate name="Board parameters" >
                    <bul:parameters id="5629"/>
                    <bul:parameters id="22002"/>
                    <bul:parameters id="22001"/>
</bul:CollectionTemplate>
<bul:CollectionTemplate name="Test 15min parameters" >
                    <bul:parameters id="151524"/>
                    <bul:parameters id="151525"/>
</bul:CollectionTemplate>
# nawk -F"\"" '/<[\/]*bul:CollectionTemplate[> ]/{x=!x;f=(x&&/15min/)?"Parameter15min.txt":"Parameter1h.txt"}x&&/id/{print $(NF-1) >> f ; close f}' tst
# cat Parameter15min.txt
151524
151525
# cat Parameter1h.txt
5629
22002
22001
1 Like

Thank u so much... It worked well