xml – Groovy – 如何退出每个循环?
发布时间:2020-12-16 08:04:09 所属栏目:百科 来源:网络整理
导读:我是Grails / Groovy的新手,我试图在一个xml文件中找到一个节点;我已经弄清楚如何迭代所有这些,但是当找到目标节点时,我想退出循环。我已经读过,而不是使用“每个”,使用“查找”,但我发现的例子是条件。现在我的逻辑是要遍历整个文件而不退出。代码如
我是Grails / Groovy的新手,我试图在一个xml文件中找到一个节点;我已经弄清楚如何迭代所有这些,但是当找到目标节点时,我想退出循环。我已经读过,而不是使用“每个”,使用“查找”,但我发现的例子是条件。现在我的逻辑是要遍历整个文件而不退出。代码如下:
records.children().each {domain -> println "domain_name: " + domain.@domain_name if (domain.@domain_name == targetDomain) { println "target domain matched: " + domain.@domain_name domain.children().each {misc_field -> println "field_name: " + misc_field.@field_name println "field_type: " + misc_field.@field_type println "field_value: " + misc_field } } }
你不能优雅地做。你可能会看到有些人建议抛出异常,但这只是
plain ugly。
这里有一些mailing list discussion关于使用每个对于,而一对夫妇则表示,因为每个人都无法从迭代中脱颖而出。 你最好的打赌可能是转换为for循环并迭代: for(def domain : records.children()) { // this may need some tweaking depending on types // do stuff if(condition) { break; } } 或者,就像你说的,也许使用find或findAll找到你要找的元素(以下代码是释义的,我还没有时间来测试): def result = records.children().find { domain -> domain.@domain_name == targetDomain } result.children().each { // print stuff } 相关问题: > best-pattern-for-simulating-continue-in-groovy-closure (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |