Programiranje

Črpanje XML z Groovyjem

V prvih dneh uporabe Jave v povezavi z XML se je pogosto zdelo težje, kot bi moralo biti, da bi programski jezik Java uporabljali z označevalnim jezikom XML. Poleg netrivialnih in pogosto različno implementiranih API-jev DOM in SAX je bila pogosta težava tudi preprosto iskanje pravilne različice Xerces (in kasneje tudi Crimson), ne da bi imeli preveč nasprotujočih si različic te knjižnice. To okolje je privedlo do nastanka in zaporednega prejemanja projekta JDOM. Kasnejši razvoj, kot je uvedba standardnega API-ja za razčlenjevanje Java XML za JAXP (JDK 1.4) in vključitev JAXB v Javo SE 6 (in druge knjižnice Java / XML, ki so na voljo ločeno), bi razčlenitev in delo z XML v Javi bistveno olajšal . Groovy nadaljuje s tem napredkom v enostavnosti integracije Java / XML. V tej objavi v blogu pogledam, kako uporaba Groovyjevega XmlSlurper omogoča razčlenjevanje XML osvežujoče enostavno in skoraj pregledno.

Naslednja preprosta koda XML bo uporabljena za prikaz Groovyjevega XmlSlurper. Za ta primer se pokliče datoteka XML RockAndRoll.xml.

RockAndRoll.xml

Naslednji delček kode prikazuje nekaj kode Groovy z uporabo XMLSlurper za izpis nekaterih podrobnosti na podlagi tega izvornega XML. V tem primeru se imenuje Groovyjev skript slurpXml.groovy.

slurpXml.groovy

#! / usr / bin / env groovy // slurpXml.groovy // Prikazuje uporabo groovy-jevega XML slurpinga. // albumi = novi albumi XmlSlurper (). razčleniti ("RockAndRoll.xml") albumi.Album.each {println "$ {it. @ artist} album $ {it. @ title} je izšel v $ {it. @ leto}. " it.Song.each {println "\ tFeaturing $ {it. @ title}, ki je dosegel vrh v ZDA pri $ {it. @ peak}"}} 

Kot dokazuje zgornja koda Groovy, je za razčlenitev XML in za izpis njegovih rezultatov kot del daljših nizov potrebno le nekaj vrstic kode. Enotna vrstica nov XmlSlurper (). razčlenitev ("RockAndRoll.xml") je vse, kar je potrebno za razčlenitev izvornega XML. Nato spremenljivka, ki so ji dodeljeni ti rezultati (v tem primeru albumov) omogoča dostop do vsebine XML prek znane skladnje.

Ko se izvede zgornja koda Groovy, so njeni rezultati videti kot tisti, prikazani na naslednjem posnetku zaslona.

V uporabniškem priročniku Groovy je razdelek, posvečen obravnavi branja XML z uporabo Groovyjevega XmlSlurper. Ta razdelek opozarja na dodatne težave, povezane z uporabo Groovyjevega XmlSlurperja, kot je obravnavanje imen oznak XML, ki vključujejo vezaje (uporabite dvojne narekovaje okoli imena z vključeno vezajem) in podrobnosti ujemanja imenskega prostora.

Zaključek

Ker je Groovy v resnici Java, lahko Groovy izkoristi množico API-jev za obdelavo XML za Javo. Vendar Groovy to lahko preseže in ponuja še enostavnejše API-je za manipulacijo XML. Groovyjev XmlSlurper je primer, kako Groovy olajša branje / razčlenjevanje / razčlenjevanje XML kot kdaj koli prej.

Dodatne reference

Poleg razdelka Groovy User Guide o XmlSlurper obstaja še veliko drugih spletnih virov, ki zajemajo uporabo XmlSlurper. Nekatere sem naštela tukaj.

• Branje XML z uporabo Groovyjevega XmlSlurper

• Groovy: Obdelava obstoječega XML (6. marec 2009)

• Praktično Groovy: gradnja, razčlenjevanje in razprševanje XML (19. maj 2009)

• Zaradi ničesar si ne želite več groovyja kot XML (12. marec 2008)

• Posodabljanje XML z XmlSlurper

• Groovy XMLSlurper

To zgodbo "Slurping XML with Groovy" je prvotno objavil JavaWorld.

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