Programmering

Slurping XML med Groovy

I de tidlige dagene med å bruke Java i forbindelse med XML, virket det ofte vanskeligere enn det burde være å bruke Java-programmeringsspråket med XML-markeringsspråket. Foruten de ikke-trivielle og ofte forskjellige implementerte DOM- og SAX-APIene, var det bare å finne den riktige versjonen av Xerces (og senere Crimson) uten å ha for mange motstridende versjoner av dette biblioteket. Dette miljøet førte til opprettelsen og mottok suksessivt JDOM-prosjekt. Senere utvikling som introduksjon av standard Java XML-parsing API av JAXP (JDK 1.4) og inkludering av JAXB i Java SE 6 (og andre Java / XML-bindende biblioteker tilgjengelig separat) vil gjøre parsing og arbeid med XML i Java mye enklere. . Groovy fortsetter disse fremskrittene for å lette Java / XML-integrering. I dette blogginnlegget ser jeg på hvordan bruk av Groovy's XmlSlurper gjør XML-parsing forfriskende enkel og nesten gjennomsiktig.

Følgende enkle XML-kode vil bli brukt til å demonstrere Groovys XmlSlurper. XML-filen for dette eksemplet kalles RockAndRoll.xml.

RockAndRoll.xml

Neste kodebit viser litt Groovy-kode ved bruk av XMLSlurper for å skrive ut noen detaljer basert på denne kildens XML. Groovy-skriptet kalles i dette tilfellet slurpXml.groovy.

slurpXml.groovy

#! / usr / bin / env groovy // slurpXml.groovy // Demonstrerer bruk av Groovys XML-slurping. // album = new XmlSlurper (). parse ("RockAndRoll.xml") albums.Album.each {println "$ {it. @ artist} s album $ {it. @ title} ble utgitt i $ {it. @ år}." it.Song.each {println "\ tFeaturing $ {it. @ title} som nådde en topp i USA på $ {it. @ peak}"}} 

Som Groovy-koden ovenfor viser, er det bare noen få linjer med kode som kreves for å analysere XML og for å skrive ut resultatene som en del av lengre strenger. Den eneste linjen ny XmlSlurper (). parse ("RockAndRoll.xml") er alt som trengs for å analysere kilden XML. Så variabelen som resultatene er tildelt (i dette tilfellet, album) gir tilgang til XML-innholdet via kjent syntaks.

Når Groovy-koden ovenfor kjøres, ser resultatene ut som de som vises i følgende skjermbilde.

Groovy User Guide har en seksjon viet til dekning av å lese XML ved hjelp av Groovys XmlSlurper. Denne delen peker på flere problemer knyttet til bruk av Groovy's XmlSlurper, som for eksempel å håndtere XML-kodenavn som inkluderer bindestreker (bruk doble anførselstegn rundt navnet med bindestrek inkludert) og samsvar med detaljer om navneområdet.

Konklusjon

Fordi Groovy virkelig er Java, kan Groovy benytte seg av overflod av XML-håndterings-API-er for Java. Imidlertid kan og går Groovy utover dette og gir enda enklere å bruke API-er for XML-manipulering. Groovy's XmlSlurper er et eksempel på hvordan Groovy gjør XML-lesing / parsing / slurping enklere enn noensinne.

Ytterligere referanser

Foruten Groovy User Guide-delen om XmlSlurper, er det mange andre online ressurser som dekker bruk av XmlSlurper. Jeg lister opp noen av dem her.

• Lese XML ved hjelp av Groovy's XmlSlurper

• Groovy: Behandler eksisterende XML (6. mars 2009)

• Praktisk groovy: Building, Parsing og Slurping XML (19. mai 2009)

• Ingenting gjør at du vil ha groovy mer enn XML (12. mars 2008)

• Oppdaterer XML med XmlSlurper

• Groovy XMLSlurper

Denne historien, "Slurping XML with Groovy" ble opprinnelig utgitt av JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found