Extracting multiple value using xmlstarlet -


how can extract "failed" element , add them up?

<gateway>     <smscs>         <count>3</count>         <smsc>             <id>a</id>             <received><sms>0</sms><dlr>0</dlr></received>             <sent><sms>10537</sms><dlr>0</dlr></sent>             <failed>13</failed>             <queued>6272</queued>         </smsc>         <smsc>             <id>b</id>             <received><sms>0</sms><dlr>0</dlr></received>             <sent><sms>10530</sms><dlr>0</dlr></sent>             <failed>10</failed>             <queued>6284</queued>         </smsc>         <smsc>             <id>c</id>             <received><sms>0</sms><dlr>0</dlr></received>             <sent><sms>10679</sms><dlr>0</dlr></sent>             <failed>11</failed>             <queued>6291</queued>         </smsc>     </smscs> </gateway> 

i used

xmlstarlet sel -t -v "sum(/gateway/smscs/smsc/failed)" -n input.xml 

which returned

34 

the idea use sum() function takes node-set , returns sum of elements' string-values converted numbers.


Comments