是否可以附加节点 Grails中的groovy.util.slurpersupport.NodeChild?
AppendNode不起作用。
我是否必须使用xmlparser或xmlslurper?
祝你好运, 彼得
答案 0 :(得分:1)
绝对有可能! 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来输出原始数据。
最后,我们可以使用
恢复HTMLString tableString = new StreamingMarkupBuilder().bind { mkp.yield tableContent }
然后继续做任何我们需要的事情。