重构groovy html markupbuilder

时间:2015-12-01 07:49:10

标签: groovy groovyshell markupbuilder

我最近选择了groovy脚本,所以我还是初学者 (我也是C的专业程序员,有一些Java概念) 我使用MarkupBuilder成功创建了一个有效的html页面(参见下面的简化示例)

def writer = new StringWriter()
def page_html = new groovy.xml.MarkupBuilder(writer)
page_html.html
{
    head
    {
        title("Test HTML table")
    }
    body
    {
        h3("Test HTML")
        a 
        {
            mkp.yield("Hello html")
        }
    }
}
writer.toString()

一切都很好,除非现在“身体”部分变得非常大而且我有一些重复的代码所以它确实需要重构。 通过重构,我的意思是我想把部件放在一个函数/过程中并在“body”中重复调用它。

我试着按照这个例子 http://groovy.jmiguel.eu/groovy.codehaus.org/Using+MarkupBuilder+for+Agile+XML+creation.html

认为它可以与HTML标记一样使用XML。 编辑:它确实有效。

例如,如果我做了类似

的事情
def my_procedure(builder)
{
   builder.a 
   {
        mkp.yield("Hello html")
   }
}

def writer = new StringWriter()
def page_html = new groovy.xml.MarkupBuilder(writer)
page_html.html
{
    head
    {
        title("Test HTML table")
    }
    body
    {
        h3("Test HTML")
        my_procedure(page_html)
    }
}
writer.toString()

编辑:如果不写builder.a但在程序中只有“a”,则执行失败

谢谢, 克莱门特

0 个答案:

没有答案