Προγραμματισμός

Slurping XML με τον Groovy

Στις πρώτες μέρες της χρήσης Java σε συνδυασμό με XML, συχνά φαινόταν πιο δύσκολο από ό, τι θα έπρεπε να είναι η χρήση της γλώσσας προγραμματισμού Java με τη γλώσσα σήμανσης XML. Εκτός από τα μη τετριμμένα και συχνά εφαρμοζόμενα API DOM και SAX, η εύρεση της σωστής έκδοσης του Xerces (και αργότερα, του Crimson) χωρίς να έχει πάρα πολλές συγκρουόμενες εκδόσεις αυτής της βιβλιοθήκης ήταν επίσης ένα κοινό πρόβλημα. Αυτό το περιβάλλον οδήγησε στη δημιουργία και έλαβε διαδοχικά το έργο JDOM. Οι μεταγενέστερες εξελίξεις, όπως η εισαγωγή του τυπικού API ανάλυσης Java XML του JAXP (JDK 1.4) και η συμπερίληψη του JAXB στο Java SE 6 (και άλλες βιβλιοθήκες δέσμευσης Java / XML διατίθενται ξεχωριστά) θα κάνουν την ανάλυση και τη συνεργασία με το XML στην Java πολύ πιο εύκολη . Ο Groovy συνεχίζει αυτές τις εξελίξεις στην ευκολία ενσωμάτωσης Java / XML. Σε αυτήν την ανάρτηση ιστολογίου, εξετάζω πώς η χρήση του XmlSlurper του Groovy καθιστά την ανάλυση XML αναζωογονητική εύκολη και σχεδόν διαφανή.

Ο παρακάτω απλός κωδικός XML θα χρησιμοποιηθεί για την επίδειξη του Groovy's XmlSlurper. Το αρχείο XML για αυτό το παράδειγμα ονομάζεται RockAndRoll.xml.

RockAndRoll.xml

Το επόμενο απόσπασμα κώδικα εμφανίζει κάποιο Groovy κώδικα χρησιμοποιώντας το XMLSlurper για να εκτυπώσετε κάποιες λεπτομέρειες με βάση αυτήν την πηγή XML. Το σενάριο Groovy σε αυτήν την περίπτωση ονομάζεται slurpXml.groovy.

slurpXml.groovy

#! / usr / bin / env groovy // slurpXml.groovy // Δείχνει τη χρήση του XML slurping του Groovy. // άλμπουμ = νέο XmlSlurper (). parse ("RockAndRoll.xml") άλμπουμ.Album.each {println "$ {it. @ άλμπουμ @ καλλιτέχνη} $ {it. @ title} κυκλοφόρησε σε $ {it. @ έτος}." it.Song.each {println "\ tFuringuring $ {it. @ title} που κορυφώθηκε στις ΗΠΑ στα $ {it. @ peak}"}} 

Όπως δείχνει ο παραπάνω κώδικας Groovy, απαιτούνται μόνο λίγες γραμμές κώδικα για την ανάλυση του XML και για την εκτύπωση των αποτελεσμάτων του ως μέρος μεγαλύτερων συμβολοσειρών. Η ενιαία γραμμή νέο XmlSlurper (). ανάλυση ("RockAndRoll.xml") είναι το μόνο που χρειάζεται για την ανάλυση της πηγής XML. Στη συνέχεια, η μεταβλητή στην οποία εκχωρούνται αυτά τα αποτελέσματα (σε αυτήν την περίπτωση, άλμπουμ) παρέχει πρόσβαση στο περιεχόμενο XML μέσω γνωστής σύνταξης.

Όταν εκτελείται ο παραπάνω κωδικός Groovy, τα αποτελέσματά του μοιάζουν με αυτά που εμφανίζονται στο παρακάτω στιγμιότυπο οθόνης.

Ο Οδηγός χρήστη του Groovy έχει μια ενότητα αφιερωμένη στην κάλυψη της ανάγνωσης XML χρησιμοποιώντας το XroSlurper του Groovy. Αυτή η ενότητα επισημαίνει πρόσθετα ζητήματα που σχετίζονται με τη χρήση του XroSlurper του Groovy, όπως η αντιμετώπιση ονομάτων ετικετών XML που περιλαμβάνουν παύλες (χρησιμοποιήστε διπλά εισαγωγικά γύρω από το όνομα με παύλα) και λεπτομέρειες αντιστοίχισης χώρου ονομάτων.

συμπέρασμα

Επειδή ο Groovy είναι πραγματικά Java, ο Groovy μπορεί να χρησιμοποιήσει την πληθώρα των API χειρισμού XML για Java. Ωστόσο, ο Groovy μπορεί και προχωρά πέρα ​​από αυτό και παρέχει ακόμη πιο εύχρηστα API για χειρισμό XML. Το XmlSlurper του Groovy είναι ένα παράδειγμα του τρόπου με τον οποίο το Groovy διευκολύνει την ανάγνωση / ανάλυση / αποκωδικοποίηση XML από ποτέ.

Πρόσθετες αναφορές

Εκτός από την ενότητα Οδηγός χρήστη Groovy στο XmlSlurper, υπάρχουν πολλοί άλλοι διαδικτυακοί πόροι που καλύπτουν τη χρήση του XmlSlurper. Παραθέτω μερικά από αυτά εδώ.

• Ανάγνωση XML με χρήση του XroSlurper του Groovy

• Groovy: Επεξεργασία υφιστάμενου XML (6 Μαρτίου 2009)

• Πρακτικά Groovy: Building, Parsing και Slurping XML (19 Μαΐου 2009)

• Τίποτα δεν σε κάνει να θέλεις Groovy περισσότερο από το XML (12 Μαρτίου 2008)

• Ενημέρωση XML με XmlSlurper

• Groovy XMLSlurper

Αυτή η ιστορία, "Slurping XML with Groovy" δημοσιεύθηκε αρχικά από την JavaWorld.