import groovy.xml.MarkupBuilder import groovy.xml.StreamingMarkupBuilder //生成器 //1 def fw = new FileWriter(new File("normal.xml")) def builder = new MarkupBuilder(fw) builder.html{ head("hello",m:"a"){ title("文章标题") } body(){ } } //2 def sb = new StreamingMarkupBuilder() sb.encoding = 'utf-8' def closure = { html{ head(m:"a"){ title("文章标题") } body(){ } } } def ws = sb.bind(closure) println ws.toString() //解析器 def parser = new XmlParser().parse("AndroidManifest.xml") def ns = new groovy.xml.Namespace("http://schemas.android.com/apk/res/android", "android") Node node = parser.'application'[0] Node meta = node.'meta-data'[0] node.remove(meta) node.appendNode('meta-data',[(ns.name):'a',(ns.value):'b',(ns.hh):'c']) new XmlNodePrinter(new PrintWriter(new File('replace.xml'))).print(parser) println parser.attribute("package") println parser.getClass() meta.attributes().each { k,v-> if(k.toString() == "{http://schemas.android.com/apk/res/android}name"){ println k } println v }