System.out.println("<root><data>something</data></root>");
但是遇到複雜的資料結構,以及需要處理 Escape Characters 時,就很容易不斷踩到地雷。
當 Java 開發者,開始改用 Groovy 讓軟體開發工作更敏捷,就不能錯過 MarkupBuilder。
Groovy 提供許多種 Builder,基本上這就是一種 DSL(Domain-Specific Languages),讓開發者可以使用更簡單易懂的程式語法,來解決特定的用途。
而 MarkupBuilder 就是產生 XML 專用的 Groovy Builder,以下有關 MarkupBuilder 的文件,可以看到 Groovy 如何輕鬆地處理 XML 產生的工作。
如果,我們要使用 MarkupBuilder 輸出 HTML/XHTML,則只需要在加上一些設定:
另外,mkp.yield 與 mkp.yieldUnescaped 是特殊的用法。當遇到某些內容需要直接輸出,而不要被包含在子標籤中,就可以利用 yield;而 yieldUnescaped 則是直接輸出未經過 escape 處理的內容。
- http://groovy.codehaus.org/Creating+XML+using+Groovy's+MarkupBuilder
- http://groovy.codehaus.org/api/groovy/xml/MarkupBuilder.html
- http://groovy.codehaus.org/Using+MarkupBuilder+for+Agile+XML+creation
如果,我們要使用 MarkupBuilder 輸出 HTML/XHTML,則只需要在加上一些設定:
- html.doubleQuotes = true
屬性使用慣用的雙引號,例如 class="icons"。 - html.expandEmptyElements = true
讓標籤成對顯示。 - html.omitEmptyAttributes = false
不要移除沒有值的屬性。 - html.omitNullAttributes = false
不要移除值為 NULL 的屬性。
另外,mkp.yield 與 mkp.yieldUnescaped 是特殊的用法。當遇到某些內容需要直接輸出,而不要被包含在子標籤中,就可以利用 yield;而 yieldUnescaped 則是直接輸出未經過 escape 處理的內容。
請參考這段範例(將程式碼複製到 Groovy Web Console 即可執行):
沒有留言:
張貼留言