I am trying to parse an xml file and trying to grab certain values and inserting them into database table. I have the following xml that I am parsing:
<dd:service name="locator" link="false">
<dd:activation mode="manual" />
<dd:run mode="direct_persistent" proxified="false" managed="true" authenticated="false" perflog="false" dynlog="true" />
<dd:endpoint protocol="iiop" port="21120" />
</dd:service>
<dd:service name="node_daemon" link="false">
<dd:activation mode="manual" />
<dd:run mode="direct_persistent" proxified="false" managed="true" authenticated="false" perflog="false" dynlog="true" />
<dd:endpoint protocol="iiop" port="21121" />
</dd:service>
<dd:service name="management" link="false">
<dd:activation mode="manual" />
<dd:run mode="direct_persistent" proxified="false" managed="false" authenticated="false" perflog="false" dynlog="false" />
<dd:endpoint protocol="http" port="21122" />
<dd:endpoint protocol="iiop" port="21123" />
</dd:service>
I need to create a row for each service type. For instance I need to insert into a table for the service stanza:
locator, 21120
node_daemon, 21121
management, 21123
So I would like to grab the service type and iiop port, but I am having some difficulty doing so. I have come up with the following, but it isn't correct. This will only grab the port, but not the iiop port, but including http ports.
for k in `cat test.xml | grep port | awk -F"\"" '{print $4}'`
do
echo "$server,dev$i,test,$k" >> test.txt
done
fi