By dave | July 1, 2012

Groovy supports the concept of builders, which provide an abstraction between the required output content and the representation of it. Groovy supports this by providing a tree like structure in groovy code that represents the required HTML or XML:

import groovy.xml.MarkupBuilder

// create a builder to generate xml like content from a
// builder structure, in this case we choose
// StringWriter as the output, but it could be any writer.
def writer = new StringWriter();
def builder = new MarkupBuilder(writer);

builder.html {
    head {
        title "Hello world"
    }
    body {
        h1 "My Hello world page"
        p "This is the content"
    }
}

println(writer);

So what have we done?

We generated some HTML, in this case we just printed it to the console, but we could have sent this back to a web browser for example, or saved it to disk. The XML structure that we generated from above looked as follows:

<html>
  <head>
    <title>Hello world</title>
  </head>
  <body>
    <h1>My Hello world page</h1>
    <p>This is the content</p>
  </body>
</html>

As can be seen, its very straight forward to write XML formatted data with Groovy. To me this was a major feature when I started looking at the language. On the next page I look at a more complex example, of writing an ATOM syndication document using the builder. This requires namespace support and interaction with closures.

Other pages within this category

comments powered by Disqus

This site uses cookies to analyse traffic, and to record consent. We also embed Twitter, Youtube and Disqus content on some pages, these companies have their own privacy policies.

Our privacy policy applies to all pages on our site

Should you need further guidance on how to proceed: External link for information about cookie management.

Send a message
X

Please use the forum for help with UI & libraries.

This message will be securely transmitted to our servers.