这似乎为我工作(采取了一些试验和错误的)
@Grab(group='org.ccil.cowan.tagsoup', module='tagsoup', version='1.2')
import org.ccil.cowan.tagsoup.*
import groovy.xml.*
String htmlTxt = """
Select
Male
Female
"""
// Define our TagSoup backed parser
def slurper = new XmlSlurper(new Parser())
// Parse our html
def h = slurper.parseText(htmlTxt)
// Find the input with the id 'txtName'
def i = h.body.input.list().find { [email protected] == 'txtName' }
// Change it's value
[email protected] = 'new value'
// Write it out (into a StringWriter for now)
def w = new StringWriter()
w << new StreamingMarkupBuilder().bind {
// Required to avoid the html: namespace on every node
mkp.declareNamespace '':'http://www.w3.org/1999/xhtml'
mkp.yield h
}
// XmlUtil.serialize neatens up our resultant xml -- but adds an xml declaration :-(
println new XmlUtil().serialize(w.toString())
[编辑]
那g ives结果:
Select
Male
Female