XML mit Groovy schlürfen

In den frühen Tagen der Verwendung von Java in Verbindung mit XML schien es oft schwieriger als es sein sollte, die Programmiersprache Java mit der XML-Auszeichnungssprache zu verwenden. Neben den nicht trivialen und oft unterschiedlich implementierten DOM- und SAX-APIs war es auch ein häufiges Problem, einfach die richtige Version von Xerces (und später Crimson) zu finden, ohne zu viele widersprüchliche Versionen dieser Bibliothek zu haben. Diese Umgebung führte zur Erstellung und erhielt nacheinander das JDOM-Projekt. Spätere Entwicklungen wie die Einführung der Standard-Java-XML-Parsing-API von JAXP (JDK 1.4) und die Aufnahme von JAXB in Java SE 6 (und andere separat verfügbare Java / XML-Bindungsbibliotheken) würden das Parsen und Arbeiten mit XML in Java erheblich vereinfachen . Groovy setzt diese Fortschritte bei der einfachen Java / XML-Integration fort. In diesem Blog-Beitrag schaue ich mir an, wie Groovy 's Mit XmlSlurper ist das Parsen von XML erfrischend einfach und nahezu transparent.

Der folgende einfache XML-Code wird verwendet, um Groovys XmlSlurper zu demonstrieren. Die XML-Datei für dieses Beispiel wird aufgerufen RockAndRoll.xml.

RockAndRoll.xml

Das nächste Code-Snippet zeigt Groovy-Code, der XMLSlurper verwendet, um einige Details basierend auf diesem Quell-XML auszudrucken. In diesem Fall wird das Groovy-Skript aufgerufen 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]}" } } 

Wie der obige Groovy-Code zeigt, sind nur wenige Codezeilen erforderlich, um das XML zu analysieren und die Ergebnisse als Teil längerer Zeichenfolgen auszudrucken. Die einzige Zeile reicht aus new XmlSlurper().parse("RockAndRoll.xml"), um das Quell-XML zu analysieren. Die Variable, der diese Ergebnisse zugewiesen sind (in diesem Fall albums), bietet dann über die bekannte Syntax Zugriff auf den XML-Inhalt.

Wenn der obige Groovy-Code ausgeführt wird, sehen die Ergebnisse wie im folgenden Screenshot aus.

Das Groovy-Benutzerhandbuch enthält einen Abschnitt zum Lesen von XML mit Groovys XmlSlurper. In diesem Abschnitt werden zusätzliche Probleme im Zusammenhang mit der Verwendung von Groovys XmlSlurper aufgeführt, z. B. der Umgang mit XML-Tag-Namen, die Bindestriche enthalten (doppelte Anführungszeichen um den Namen, einschließlich Bindestrich), und Details zur Übereinstimmung des Namespace.

Fazit

Da Groovy wirklich Java ist, kann Groovy die Vielzahl von XML-Handling-APIs für Java nutzen. Groovy kann und geht jedoch darüber hinaus und bietet noch benutzerfreundlichere APIs für die XML-Manipulation. Groovys XmlSlurper ist ein Beispiel dafür, wie Groovy das Lesen / Parsen / Schlürfen von XML einfacher als je zuvor macht.

Zusätzliche Referenzen

Neben dem Abschnitt Groovy User Guide zu XmlSlurper gibt es viele andere Online-Ressourcen, die die Verwendung von XmlSlurper abdecken. Ich liste einige davon hier auf.

• Lesen von XML mit Groovys XmlSlurper

• Groovy: Verarbeiten von vorhandenem XML (6. März 2009)

• Praktisch groovig: Erstellen, Parsen und Slurping von XML (19. Mai 2009)

• Nichts macht Lust auf mehr als XML (12. März 2008)

• Aktualisieren von XML mit XmlSlurper

• Grooviger XMLSlurper

Diese Geschichte "Slurping XML with Groovy" wurde ursprünglich von JavaWorld veröffentlicht.