XML :: SAX :: INTRO

XML :: SAX :: INTRO is een inleiding tot Sax-parsering met PERL.
Download nu

XML :: SAX :: INTRO Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Matt Sergeant
  • Uitgever website:
  • http://search.cpan.org/~msergeant/

XML :: SAX :: INTRO Tags


XML :: SAX :: INTRO Beschrijving

XML :: SAX :: INTRO is een inleiding tot Sax-parseren met PERL. XML :: Sax :: Intro is een inleiding tot Sax-parseren met Perl.xml :: Sax is een nieuwe manier om met XML-parsers in Perl te werken. In dit artikel bespreken we waarom u SAX zou moeten gebruiken, waarom zou u XML :: SAX moeten gebruiken, en we zullen enkele van de fijnere implementatiedetails bekijken. De onderstaande tekst gaat uit van een vertrouwdheid met callback of op de push-based parsing, maar als u onbekend bent met deze technieken, is dan een goede plek om te beginnen is KIP Hampton's uitstekende reeks artikelen op xml.com.Replacing XML :: Parserthe de-facto manier van Het parseren van XML onder PERL is om Larry Wall en Clark Cooper's XML :: Parser te gebruiken. Deze module is een PERL- en XS-wrapper rond de Expat XML PARDER-bibliotheek door James Clark. Het was een enorm succesvol project, maar lijdt aan een paar vrij grote gebreken. Ten eerste is het een gepatenteerde API, ontworpen voordat de SAX-API is ontworpen, wat betekent dat het niet gemakkelijk wordt vervangen door andere streaming-parsers. Ten tweede zijn callbacks subrefs. Dit klinkt niet als een groot deel van een probleem, maar leidt helaas tot code zoals: subhendel_start {My ($ e, $ el,% ign) = @_; if ($ el eq 'foo') {$ e -> {inside_foo} ++; # SLECHTE! $ e is een XML :: Parser :: Expat-object. }} Zoals u kunt zien, gebruiken we het object $ e om onze staatsinformatie vast te houden, wat een slecht idee is, omdat we dat object niet bezitten - we hebben het niet gemaakt. Het is een intern object van XML :: Parser, dat toevallig een Hashref is. We kunnen al te gemakkelijk XML overschrijven :: Parser Interne State-variabelen door dit te gebruiken, of Clark zou het kunnen veranderen in een array-ref XML :: Parser om de staat veilig te handhaven is om een sluiting te gebruiken: mijn $ Staat = MyState-> Nieuw (); $ Parser-> SetHandlers (Start => Sub {handhend_start ($ State, @_)}); deze sluiting trapt de variabele van de $ staatsvariabele, die nu wordt doorgegeven als de eerste parameter naar uw callback. Helaas gebruiken heel weinig mensen deze techniek, omdat het niet is gedocumenteerd in de XML :: PARDER POD-bestanden.Andere reden waarom u misschien niet wilt gebruiken XML :: PARDER, is omdat u een functie nodig hebt dat het niet bevat (zoals validatie ), of misschien moet u een bibliotheek gebruiken die geen expat gebruikt, vanwege het niet geïnstalleerd op uw systeem, of als gevolg van een restrictieve ISP. Met behulp van SAX kun je deze beperkingen rond werken. Verreikingen: · Perl-vereisten: · Perl


XML :: SAX :: INTRO Gerelateerde software

ring

RGEN is een bibliotheek bestaande uit willekeurige generator en gegevensaccumulatiecategorieën. ...

150

Downloaden