Lupkajući XML s Groovyjem

U ranim danima korištenja Jave zajedno s XML-om često se činilo težim nego što bi trebalo biti korištenje programskog jezika Java s jezikom za označavanje XML. Osim netrivijalnih i često različito implementiranih API-ja DOM i SAX, jednostavno pronalaženje ispravne verzije Xercesa (i kasnije Crimson) bez previše sukobljenih verzija te biblioteke također je bio čest problem. Ovo okruženje dovelo je do stvaranja i sukcesivnog primanja JDOM projekta. Kasniji razvoj, poput uvođenja standardnog API-ja za raščlanjivanje Java XML-a JAXP-a (JDK 1.4) i uključivanje JAXB-a u Javu SE 6 (i ostale Java / XML knjižnice vezivanja dostupne zasebno), učinilo bi raščlanjivanje i rad s XML-om u Javi mnogo lakšim . Groovy nastavlja s tim napretkom u jednostavnosti integracije Java / XML. U ovom postu na blogu gledam kako se koristi Groovy 's XmlSlurper čini XML raščlanjivanje osvježavajuće jednostavnim i gotovo transparentnim.

Sljedeći će se jednostavni XML kôd koristiti za demonstraciju Groovyjevog XmlSlurper-a. Poziva se XML datoteka za ovaj primjer RockAndRoll.xml.

RockAndRoll.xml

Sljedeći isječak koda prikazuje neki Groovy kôd koristeći XMLSlurper za ispis nekih detalja na temelju ovog izvornog XML-a. U ovom se slučaju naziva Groovyjeva skripta slurpXml.groovy.

slurpXml.groovy

#!/usr/bin/env groovy // slurpXml.groovy // Demonstrates use of Groovy's XML slurping. // albums = new XmlSlurper().parse("RockAndRoll.xml") albums.Album.each { println "${[email protected]}'s album ${[email protected]} was released in ${[email protected]}." it.Song.each { println "\tFeaturing ${[email protected]} that peaked in the U.S. at ${[email protected]}" } } 

Kao što pokazuje Groovyjev kôd, samo je nekoliko redaka koda potrebno za raščlanjivanje XML-a i za ispis njegovih rezultata kao dijela dužih nizova. Za new XmlSlurper().parse("RockAndRoll.xml")raščlambu izvornog XML-a potreban je samo jedan redak . Tada varijabla kojoj su dodijeljeni ti rezultati (u ovom slučaju, albums) omogućuje pristup XML sadržaju putem poznate sintakse.

Kada se izvrši Groovyjev kôd gore, njegovi rezultati izgledaju poput onih prikazanih na sljedećem snimku zaslona.

Korisnički vodič Groovy ima odjeljak posvećen pokrivanju čitanja XML-a pomoću Groovyjevog XmlSlurper-a. Ovaj odjeljak ukazuje na dodatne probleme povezane s upotrebom Groovyjevog XmlSlurper-a, poput rješavanja naziva XML oznaka koja uključuju crtice (koristite dvostruke navodnike oko imena s uključenom crticom) i detalja podudaranja prostora imena.

Zaključak

Budući da je Groovy zaista Java, Groovy može iskoristiti mnoštvo XML API-ja za rukovanje Java-om. Međutim, Groovy to može i čini i dalje i pruža još jednostavnije API-je za upotrebu za XML manipulaciju. Groovyev XmlSlurper primjer je kako Groovy olakšava čitanje / raščlanjivanje / razvrstavanje XML-a lakše nego ikad.

Dodatne reference

Osim odjeljka Groovy User Guide o XmlSlurper, postoje i mnogi drugi mrežni izvori koji pokrivaju upotrebu XmlSlurper. Ovdje ih navodim neke.

• Čitanje XML-a pomoću Groovyjevog XmlSlurper-a

• Groovy: Obrada postojećeg XML-a (6. ožujka 2009.)

• Praktično Groovy: XML za izgradnju, raščlanjivanje i razbijanje (19. svibnja 2009.)

• Ništa vas ne tjera na Groovy više od XML-a (12. ožujka 2008.)

• Ažuriranje XML-a pomoću XmlSlurper-a

• Groovy XMLSlurper

Ovu priču, "Slušanje XML-a s Groovyjem" izvorno je objavio JavaWorld.