[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: En programmeringsövning orsakad av xml



test.pl
#!/usr/bin/perl
while(<>) {
        chomp(@NN=split(/\|/));
print <<EOF;
<lager avd="$NN[1]">
  <vara>$NN[0]<antal>$NN[2]</antal>
  </vara>
</lager>
EOF
}

test.txt
ETTAN|TVAN|TREAN|FYRAN
1ETTAN|1TVAN|1TREAN|1FYRAN


#test.pl test.txt
<lager avd="TVAN">
  <vara>ETTAN<antal>TREAN</antal>
  </vara>
</lager>
<lager avd="1TVAN">
  <vara>1ETTAN<antal>1TREAN</antal>
  </vara>
</lager>


/markus
UUCP because I care

Mats Erik Andersson wrote:
>   Bästa debianiter!
>
>   Låt mig föreslå en utmaning i programmering för
> allas
> vår fortbildning. Ju fler metoder eller språk som
> kommer till nytta, desto bättre utdelning:
>
> Målsättningen är att av en förenklad fältlista åstad-
> komma xml-poster enligt en xml-mall. Denna fältlista
> skall bestå av rader enligt
>
>   text|text|text|text|....
>
> där tecknen <>/ måste tillåtas för att uppnå
>
>   abb<sidoform>dkk</sidoform>|  jj ss |fkkrl.
>
> Å andra sidan skall xml-mallen byggas upp som
>
>    <lager avd="$2">
>       <vara>$1<antal>$3</antal>
>       </vara>
>    </lager>
>
> där $nn anger vilket fält i inmatningsraden som
> skall in på denna plats. Det är viktigt att både
> inmatning och xml-mall skall kunna innehålla god-
> tyckliga mellanslag utan att dessa fördärvas.
> Ett fördel vore om lodstrecket i inmatningen
> kan förändras allt efter eget tycke.
>   Efter viss möda skrev jag samman en bash-snutt
> med hjälp av 'sed' och 'eval' för att åstadkomma
> min lösning. Jag vill inte fördärva Ert nöje, så
> jag håller inne med min bash-fil intill dess att
> någon nappar på utmaningen.
>
>            Väl mött i kampen
>
>                 Mats Erik Andersson
>
>
>   



Reply to: