Below is the shell script which displays the list of names and manager_add
name=($(grep -oP '(?<=name>)[^<]+' <<< "$vsppProxy_res"))
for i in ${!name[*]}
do
echo "$i" "${name[$i]}"
done
managers=($(grep -oP '(?<=manager_addr>)[^<]+' <<< "$vsppProxy_res"))
for i in ${!managers[*]}
do
echo "$i" "${managers[$i]}"
done
The out put so far is:
0 name0 1 name1 2 name2 3 name3 ........................ ........................ ........................ ........................ 0 manager_add0 1 manager_add1 2 manager_add2 ........................ ........................
The xml response contains 3 top level elements like,
<elem id="0">
and again each top level element contains sub elements like <elem id="0"
> depending on the size.
But, the requirement is need to extract only the top level element <elem id="0">
The sample xml looks like below :
<X>
<regs>
<elem id="0">
<id>1</id>
<name>name0</name>
<warn>1</warn>
<manager_addr>manager_addr0</manager_addr>
<warn_desc>
<size>14</size>
<elem id="0">
<sev>2</sev>
<description>description</description>
<warning_id>1</warning_id>
<deployment_id>1</deployment_id>
<context_id>00</context_id>
<num_of_occurrences>1</num_of_occurrences>
<deployment_name>prod1</deployment_name>
</elem>
<elem id="1">
<sev>2</sev>
<description>description</description>
<warning_id>1</warning_id>
<deployment_id>1</deployment_id>
<context_id>00</context_id>
<num_of_occurrences>1</num_of_occurrences>
<deployment_name>prod1</deployment_name>
</elem>
</warn_desc>
</elem>
<elem id="1">
<id>2</id>
<name>name1</name>
<warn>1</warn>
<manager_addr>manager_addr1</manager_addr>
<warn_desc>
<size>1</size>
<elem id="0">
<sev>3</sev>
<description>description</description>
<warning_id>2</warning_id>
<context_id>00</context_id>
<num_of_occurrences>1</num_of_occurrences>
</elem>
</warn_desc>
</elem>
</regs>
</X>
The expected output should be :
Manager: name0 manager_add0 ........................ ........................ ........................
Please provide your suggestions. Thank you.