Trasformare un testo in XML

R

RobynSH

Ho una vecchia procedura dalla quale vorrei poter generare un file XML.
L'output che ho a disposizione è il seguente:

=start-text=======================================
0:mad:SEDDES,0035|@SEDAGG,0030|@SEDIND,0030|@SEDIN2,0030|@SEDCAP,0005|@SEDLOC,0030|
@SEDPRO,0003|@NUMDOC,0007|@DATADO,0010|@CLFPIV,0016|
1:mad:ARTDES,0040|@CODUMS,0002|@QTAMOV,0007|@PRZBAS,0011|@VALDET,0012|
2:mad:TOTIMP,0012|@ALIQ01,0005|@TOTIVA,0012|@PAGDES,0030|@TOTDOC,0012|@TOTEUR,0012|
0:BIANCHI MARCO S.P.A.||Via Attilio
Sorti, 12||46123|Firenze
|FI |*******|24/03/2005|IT 02150140545 |
1:ARTICOLO DIMOSTRATIVO|N.| 10 | 1,500|15,
00|
1:A|CF| 2 | 10,000|20,
00|
1:prova|NR| 10 | 5,000|50,
00|
1:prova in.|NR| 100 | 560,000|*O
|
1:libero| || 1,000| 560,00|
1:$$|
1:*O=Merce in omaggio: Valore EUR 56.000,00 $$|
2: 5.645,00|20,00| 1.129,00|RIMESSA DIRETTA| 6.774,00|
3,50|
=end-text=======================================

In sostanza il file di input è:
- Definizione nomi e lunghezza variabili (0,1,2,.... sono i livelli)
- Definizione contenuti delle variabili (livello + valori separati da |)

Vorrei ottenere una cosa del genere (con un awk, sed o similare):

<root>
<definizione>
<livello id="0">
<variabile id="SEDDES" len="35"/>
<variabile id="SEDAGG" len="30"/>
...
<variabile id="SEDLOC" len="30"/>
</livello>
<livello id="1">
<variabile id="ARTDES" len="40"/>
...
</livello>
...
</definizione>
<valori>
<livello id="0">
<valore id="SEDDES">BIANCHI MARCO S.P.A.</valore>
...
<valore id="SEDLOC">Firenze</valore>
</livello>
....
</valori>
</root>
 
L

Larry

Ho una vecchia procedura dalla quale vorrei poter generare un file XML.
L'output che ho a disposizione è il seguente:

Could you in present days speak English, please?
 
R

RobynSH

Need to obtain an XML file from the following text file:
=start-text=======================================
0:mad:SEDDES,0035|@SEDAGG,0030|@SEDIND,0030|@SEDIN2,0030|@SEDCAP,0005|@SEDLOC,0030|
@SEDPRO,0003|@NUMDOC,0007|@DATADO,0010|@CLFPIV,0016|
1:mad:ARTDES,0040|@CODUMS,0002|@QTAMOV,0007|@PRZBAS,0011|@VALDET,0012|
2:mad:TOTIMP,0012|@ALIQ01,0005|@TOTIVA,0012|@PAGDES,0030|@TOTDOC,0012|@TOTEUR,0012|
0:BIANCHI MARCO S.P.A.||Via Attilio
Sorti, 12||46123|Firenze
|FI |*******|24/03/2005|IT 02150140545 |
1:ARTICOLO DIMOSTRATIVO|N.| 10 | 1,500|15,
00|
1:A|CF| 2 | 10,000|20,
00|
1:prova|NR| 10 | 5,000|50,
00|
1:prova in.|NR| 100 | 560,000|*O
|
1:libero| || 1,000| 560,00|
1:$$|
1:*O=Merce in omaggio: Valore EUR 56.000,00 $$|
2: 5.645,00|20,00| 1.129,00|RIMESSA DIRETTA| 6.774,00|
3,50|
=end-text=======================================

I would an XML like this:

<root>
<definizione>
<livello id="0">
<variabile id="SEDDES" len="35"/>
<variabile id="SEDAGG" len="30"/>
...
<variabile id="SEDLOC" len="30"/>
</livello>
<livello id="1">
<variabile id="ARTDES" len="40"/>
...
</livello>
...
</definizione>
<valori>
<livello id="0">
<valore id="SEDDES">BIANCHI MARCO S.P.A.</valore>
...
<valore id="SEDLOC">Firenze</valore>
</livello>
....
</valori>
</root>

The text file contains a level number (first char in each line), in
the top there is the name of variable (SEDDES,SEDLOC,....) of each
level. Followed by the content of variables.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,999
Messages
2,570,246
Members
46,839
Latest member
MartinaBur

Latest Threads

Top