[英]Kotlin replacement for groovy XmlSlurper & MarkupBuilder
我以为我会在我们的 Android 项目的 gradle 构建脚本中用 Kotlin 替换 groovy,这样我就可以开始学习 Kotlin,但我遇到的第一个问题是试图寻找一些可以替换 XmlSlurper 和 MarkupBuilder 的类或库。 有人可以建议使用图书馆或课程吗?
def entries = new XmlSlurper().parse("${projectDir}/src/release/res/values/app_settings.xml")
def fileLocation = "${projectDir}/src/debug/res/xml/env_prod.xml"
println "XML file location = ${fileLocation}"
def writer = new FileWriter(new File(fileLocation))
def xmlOut = new MarkupBuilder(writer)
xmlOut.mkp.xmlDeclaration(version: "1.0", encoding: "utf-8")
xmlOut.Environment {
entries.string.each {
def name = it.@name.toString()
def body = it.text()
if (name.startsWith('default_')) {
// don't copy production omniture when we're doing local testing!
name = name.replace('default_', '').toUpperCase()
xmlOut.entry(['name' : name], body)
}
}
}
对于 MarkupBuilder,你可以使用withGroovyBuilder
方法,所以你绝对可以做这样的事情来开始构建Environment
:
val xmlOut = MarkupBuilder(writer)
xmlOut.mkp.xmlDeclaration(mapOf("version" to "1.0", "encoding" to "utf-8"))
xmlOut.withGroovyBuilder {
"Environment"() {
// the logic would go here
}
}
我不太记得 groovy,所以我真的无能为力。 迭代来自 XmlSlurper 的条目看起来有问题。 如果您只是将配置存储在这些 XML 文件中,我建议您切换到 JSON 或 HOCON。 阅读和写入这些会容易得多;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.