是否可以在
groovy.util.slurpersupport.NodeChild在Grails中?
AppendNode不起作用。
我必须使用xmlparser还是xmlslurper?
最好的祝福,
彼得
最佳答案
绝对有可能! appendNode可以工作,但是起初如何使其工作并不是特别明显。
在此示例中,我们将表的HTML存储在对象中。我们将其解析为Node和NodeChild(ren),然后向其追加行。如果您已经拥有NodeChild,则可以从第二行代码开始,但是在此示例中,我想展示如何到达那里。
def tableContent = new XmlSlurper().parseText(table.htmlContent)
tableContent.tbody.appendNode({
tr(class: "appended", "data-uuid": UUID.randomUUID().toString()) {
tableContent.thead.tr.th.each {
td {}
}
}
})
请注意,如果要替换现有节点,也可以使用.replaceNode而不是.appendNode。最后,您可以在整个块中使用mkp.yield输出原始数据。
最后,我们可以使用
String tableString = new StreamingMarkupBuilder().bind { mkp.yield tableContent }
然后继续做我们需要做的一切。