Сърпинг XML с Groovy

В ранните дни на използването на Java заедно с XML, често изглеждаше по-трудно, отколкото би трябвало да бъде използването на езика за програмиране Java с езика за маркиране XML. Освен нетривиалните и често по различен начин внедрени DOM и SAX API, просто намирането на правилната версия на Xerces (и по-късно, Crimson), без да има твърде много конфликтни версии на тази библиотека, също беше често срещан проблем. Тази среда доведе до създаването и последователно получи проект JDOM. По-късни разработки като въвеждането на стандартния API за разбор на Java XML на JAXP (JDK 1.4) и включването на JAXB в Java SE 6 (и други библиотеки за свързване на Java / XML, достъпни отделно) биха направили анализирането и работата с XML в Java много по-лесни . Groovy продължава този напредък в лесното интегриране на Java / XML. В тази публикация в блога разглеждам как се използва Groovy 's XmlSlurper прави разбор на XML освежаващо лесен и почти прозрачен.

Следният прост XML код ще бъде използван за демонстриране на XmlSlurper на Groovy. Извиква се XML файлът за този пример RockAndRoll.xml.

RockAndRoll.xml

Следващият кодов фрагмент показва малко Groovy код, използващ XMLSlurper, за да отпечата някои подробности въз основа на този XML източник. В този случай се нарича скриптът Groovy 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]}" } } 

Както показва Groovy-кодът по-горе, са необходими само няколко реда код, за да се анализира XML и да се отпечатат резултатите от него като част от по-дълги низове. Единственият ред new XmlSlurper().parse("RockAndRoll.xml")е всичко, което е необходимо за синтактичен анализ на изходния XML. Тогава променливата, към която са присвоени тези резултати (в този случай albums), осигурява достъп до XML съдържанието чрез познат синтаксис.

Когато Groovy кодът по-горе бъде изпълнен, резултатите му изглеждат като показаните на следващата снимка на екрана.

Ръководството за потребителя на Groovy има раздел, посветен на отразяване на четенето на XML с помощта на XmlSlurper на Groovy. Този раздел посочва допълнителни проблеми, свързани с използването на XmlSlurper на Groovy, като например справяне с имена на XML тагове, които включват тирета (използвайте двойни кавички около име с включен тире) и подробности за съвпадение на пространството от имена.

Заключение

Тъй като Groovy наистина е Java, Groovy може да използва изобилието от API за обработка на XML за Java. Groovy обаче може и надхвърля това и предоставя още по-лесни за използване API за XML манипулация. XmlSlurper на Groovy е пример за това как Groovy прави XML четенето / синтактичния анализ / оразмеряването по-лесно от всякога.

Допълнителни справки

Освен раздела за ръководство на Groovy за XmlSlurper, има много други онлайн ресурси, които обхващат използването на XmlSlurper. Изброявам някои от тях тук.

• Четене на XML с помощта на XmlSlurper на Groovy

• Groovy: Обработка на съществуващ XML (6 март 2009 г.)

• Практически Groovy: Изграждане, анализиране и подсказване на XML (19 май 2009 г.)

• Нищо не ви кара да искате Groovy повече от XML (12 март 2008)

• Актуализиране на XML с XmlSlurper

• Groovy XMLSlurper

Тази история „Сърпинг XML с Groovy“ първоначално е публикувана от JavaWorld.