2010-07-23 9 views
0

j'ai données XML comme ci-dessousXML Convertir la structure CSV comme

<Open> 
     <ID>7171</ID> 
     <Name>REENU</Name> 
     <Description>CHUMMA</Description> 
     <Active>1</Active> 
     <Users>1</Users> 
</Open> 

<Open> 
     <ID>7172</ID> 
     <Name>BEENU</Name> 
     <Description>CHUMMA</Description> 
     <Active>1</Active> 
     <Users>1</Users> 
</Open> 

<Open> 
     <ID>7173</ID> 
     <Name>CEENU</Name> 
     <Description>CHUMMA</Description> 
     <Active>1</Active> 
     <Users>1</Users> 
</Open> 

<Open> 
     <ID>7174</ID> 
     <Name>DEENU</Name> 
     <Description>CHUMMA</Description> 
     <Active>1</Active> 
     <Users>1</Users> 
</Open> 

<Open> 
     <ID>7175</ID> 
     <Name>GEENU</Name> 
     <Description>CHUMMA</Description> 
     <Active>1</Active> 
     <Users>1</Users> 
</Open> 

je veux convertir en csv à l'aide des commandes UNIX comme ci-dessous à l'aide des commandes unix essentiellement je veux imprimer la valeur moyenne du xml Tag

Open,7171,REENU,CHUMMA,1,1 
Open,7172,BEENU,CHUMMA,1,1 
Open,7173,CEENU,CHUMMA,1,1 
Open,7174,DEENU,CHUMMA,1,1 
Open,7175,GEENU,CHUMMA,1,1 
+2

S'il vous plaît, formatez votre question. Un titre plus descriptif serait génial aussi. – miku

+2

[Just do it.] (Http://lithe.files.wordpress.com/2008/05/nike-just-do-it.jpg) – miku

+0

Ceci est trivial dans XSLT. Avez-vous un processeur XSLT disponible? –

Répondre

0
$ nawk '/<\/Open>/{print ""}{gsub(/<.[^>]*>/,"");printf "%s, ",$0} ' file | sed -e 's/^[ \t,]*/Open,/' -e 's/,[ \t]*/,/g' -e 's/,$//' 
Open,7171,REENU,CHUMMA,1,1 
Open,7172,BEENU,CHUMMA,1,1 
Open,7173,CEENU,CHUMMA,1,1 
Open,7174,DEENU,CHUMMA,1,1