我在这样的XML文档中有一些测试配置:
<WapRules>
<WapRule>
<RuleTypeId>1</RuleTypeId>
<IsExact>false</IsExact>
<Keywords>
<Keyword>gmail</Keyword>
</Keywords>
</WapRule>
<WapRule>
<RuleTypeId>2</RuleTypeId>
<IsExact>false</IsExact>
<Keywords>
<Keyword>test</Keyword>
</Keywords>
</WapRule>
<WapRule>
<RuleTypeId>2</RuleTypeId>
<IsExact>true</IsExact>
<Keywords>
<Keyword>srs</Keyword>
<Keyword>sample</Keyword>
</Keywords>
</WapRule>
</WapRules>
我想将其表示为groovy config,然后将其插入。
“WapRules”是“WapRule”元素的列表,所以我尝试将其映射到这样的Config.groovy file:
wap_rules = [
{
rule_type_id = 1
is_exact = false
keywords = ["gmail"]
},
{
rule_type_id = 2
is_exact = false
keywords = ["test"]
},
{
rule_type_id = 2
is_exact = true
keywords = ["srs", "sample"]
}
]
现在我在配置中啜饮并尝试访问元素:
def cfg = new ConfigSlurper().parse(Config)
println cfg.wap_rules[0].rule_type_id
但输出只有:[:]
那么如何访问cfg.wap_rules[0]
内的成员呢?我将XML结构映射到Config.groovy有什么问题吗?
答案 0 :(得分:0)
得到了答案。我没有正确映射XML文档。
以下是我应该如何编写我的Config.groovy:
wap_rules = [
[
rule_type_id : 1,
is_exact : false,
keywords : ["gmail"]
],
[
rule_type_id : 2,
is_exact : false,
keywords : ["test"]
],
[
rule_type_id : 2,
is_exact : true,
keywords : ["srs", "sample"]
]
]
wap_rules
现在是一个地图列表,每个地图的元素都可以轻松访问。
现在我确实可以println cfg.wap_rules[0].rule_type_id
,输出确实是1
我猜我在编写错误的Config.groovy时,对JSON表示(即“我需要一个JSON对象列表,每个都在大括号{}”中)过于宽松。
我希望这有助于其他人。