Extract data from an XML file & write into a CSV file

Hi All,

I am having an XML tag like:

 
          <detail  sim_ser_no_1="898407109001000090"
          imsi_1="452070001000090">
          <security>ADM1[1]=????</security>
          <security>PIN1[1]=????</security>
          <security>PIN2[1]=????</security>
          <security>PUK1[1]=????</security>
          <security>PUK2[1]=????</security>
          </detail>
          <detail sim_ser_no_1="898407109001000091"
          imsi_1="452070001000091">
          <security>ADM1[1]=????</security>
          <security>PIN1[1]=????</security>
          <security>PIN2[1]=????</security>
          <security>PUK1[1]=????</security>
          <security>PUK2[1]=????</security>
          </detail>

and the output I want is like this:

 
898407109001000090,452070001000090,????,????,????,????,???? 

898407109001000091,452070001000091,????,????,????,????,???? 

and so on...
 

But not able to get all the values together esp sim_ser_no_1 & imsi_1.

Require your inputs.

Regards

awk -F'[=<"]' '/<detail/&& NR-1{print x}/sim|imsi_|security/{printf ((/sim/)?x:",")$(NF-1)}' file
$
$
$ cat -n f0.xml
     1  <detail sim_ser_no_1="898407109001000090"
     2  imsi_1="452070001000090">
     3  <security>ADM1[1]=????</security>
     4  <security>PIN1[1]=????</security>
     5  <security>PIN2[1]=????</security>
     6  <security>PUK1[1]=????</security>
     7  <security>PUK2[1]=????</security>
     8  </detail>
     9  <detail sim_ser_no_1="898407109001000091"
    10  imsi_1="452070001000091">
    11  <security>ADM1[1]=????</security>
    12  <security>PIN1[1]=????</security>
    13  <security>PIN2[1]=????</security>
    14  <security>PUK1[1]=????</security>
    15  <security>PUK2[1]=????</security>
    16  </detail>
$
$ perl -ne 'if (/^<detail.*="(\d+)/) {print $1}
            elsif (/imsi_1="(\d+)/) {print ",$1"}
            elsif (/<security.*=(.*?)</) {print ",$1"}
            else {print "\n"}' f0.xml
898407109001000090,452070001000090,????,????,????,????,????
898407109001000091,452070001000091,????,????,????,????,????
$
$

tyler_durden