簡體   English   中英

Kotlin 替換 groovy XmlSlurper 和 MarkupBuilder

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM