|
|||||||||||||||||||||||||||
> > parsere eller hvis det skal være vildt bruge Parse::RecDescent som er et
> > genialt modul til at lave parsere.
>
> Da dette er et script der senere skal destribueres, så er det ikke smart
> med andre moduler....
Parse::RecDescent kan lave standalone parsere (den laver simpelthen en
.pm fil som du kan smide med i din distribution!)
> jeg får jo selve teksten der skal parses ind fra en xml fil og denne fil
> indeholder ikke bare en, men flere af de blokke af tekst som jeg sendt
> med forrige post. Derfor skal jeg vel have læst denne tekst ind på en
> smart måde? er det smartest at læse hele filen ind i en variabel med en
> slurp eller er der en smartere måde (eller pænere måde, da slurp jo ikke
> ligefrem er en køn løsning)?
Er XML ikke bare dejligt? NOT!....
Well, IMHO er den regexp der var i mit forslag _langt_ grimmere end at
slurpe filer osv :-). Hvis du vil forbedre koden (og eftersom den skal
distribueres, skal den jo nok se rimelig pæn ud!) mener jeg der skal
mere end bare lidt regexp trylleri til for at parse din xml. Hvem ved,
måske formatet ændrer sig lidt. Tænk på slemme eksempler som fx:
<para OPTION="Is a>B?">
avs. Eller
<para FOO>Look at this code: sort {$b<=>$a} @stuff;</para>
avs igen.
Se perlfaq9 under "How do I remove HTML from a string?"
Så hvis du ved dine data er XML, bør du vel bruge et eller andet
XML-modul. Den eneste mellemvej jeg kan tænke på er Parse::RecDescent
i standalone mode.
Hvis du beholder en udgave som minder om mit stygge regexp eksempel, er
filslurp IMHO langt fra dit største problem!
- peter
--
ln -s /dev/random ~/.plan
|
||||||||||||||
|
||||||||||||||