webForumDet fria alternativet

hantera XML i Perl

7 svar · 336 visningar · startad av Roing

RoingMedlem sedan feb. 2003108 inlägg
#1

jag är nybörjare på Perl och försöker hantera lite XML data med detta...

jag kan plocka ut ett attribut med följande rad:
($data) = $buf =~ /data="(.*?)"/;

men jag vill nu göra en if sats som säger att jag bara skall göra detta om namnet på noden är t.ex. "klm"
<klm data="3" /> kan t.ex. va min xml nod.

mvh/
Martin

RobbanMedlem sedan dec. 19992 555 inlägg
#2

Det första man bör vänja sig av med som nybörjare, är att försöka uppfinna hjulet på nytt. En av Perls styrkor är den mängd färdig kod som finns i form av moduler. Använd den om möjligt. :)

I ditt fall skulle jag rekommendera någon av modulerna i http://www.cpan.org/modules/by-module/XML/ (du kan t.ex. titta på modulen XML::Sax och se om den täcker dina behov).

RoingMedlem sedan feb. 2003108 inlägg
#3

Tack men dedär va nog lite väl tungt för mig...
Jag tror/hoppas jag kan klara mig med enklare kod.

som jag tänkt så borde jag kunna plocka ut nod namnet på liknade vis som jag får infon i variablen data
($data) = $buf =~ /data="(.*?)"/;

xml koden som jag hanterar är ju bara en nod åt gången så egntlgen så har ju inte detta så mycket med xml att göra...
Mer vanlig string hantering... Så om jag omformulerar frågan och vill ha fram första ordet efter < i $buf. hur gör jag då?

RoingMedlem sedan feb. 2003108 inlägg
#4

jag va inne och kollade den där SAX också men jag hade problem att hitta någon rejäl beskrivning om vilka mettoder den innehåler... läste massa readme filer men inte mycket info i dem.
Var ska jag kolla?
/Martin

HansenMedlem sedan aug. 2000374 inlägg
#5

XML::Sax

RobbanMedlem sedan dec. 19992 555 inlägg
#6

Så om jag omformulerar frågan och vill ha fram första ordet efter < i $buf. hur gör jag då?

Om man fortsätter på din befintliga kod ...

($name,$data) = $buf =~ /<([^ ]*) data="(.*?)"/;
RoingMedlem sedan feb. 2003108 inlägg
#7

aha. det är nog på den nivån jag vill hantera det hela. tack. var kan man lära sig den syntax hanteringen?

/Martin

RobbanMedlem sedan dec. 19992 555 inlägg
#8

Ett par exempel (du hittar många fler om du söker på "regular expressions" i en sökmaskin).

http://www.effectiveperl.com/EP.04.pdf

http://www.perldoc.com/perl5.6.1/pod/perlretut.html

http://www.perldoc.com/perl5.6/pod/perlre.html

134 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)