목차

Groovy XML

XMLParser

Namespace

groovy.xml.Namespace Namespace가 존재할 경우 각 노드의 이름(QName)구조가 달라진다. pom.xml 파일을 파싱한다고 했을 때 다음과 같이한다.

def pom = new XmlParser().parse(new File('pom.xml'))
 
def ns = new groovy.xml.Namespace('http://maven.apache.org/POM/4.0.0')
def items = pom[ns.dependencies][ns.dependency][ns.scope].findAll {
    it.text() == "optional"
}.each {
    println it.text()
}

XML Builder

Pretty Print

println XmlUtil.serialize(xmlDocument) // 문자열 혹은 SteramingMarkupBuilder 객체 등.

DOMBuilder