【发布时间】:2017-06-19 06:16:14
【问题描述】:
Java 1.8 Groovy 版本 2.4.7
我正在将一个 xml 传递给一个名为 rollbackxmlResp 的变量,我正在尝试解析并获取它的值。
rollbackXmlResp 的 Xml 内容:
<?xml version=\"1.0\" encoding=\"EUC-JP\"?>
<Root>
<data>
<easy_id>12214356</easy_id>
<unique_id>53706741</unique_id>
<rollback_all_point>100</rollback_all_point>
<rollback_term_point>10</rollback_term_point>
<rollback_lapse_point>20</rollback_lapse_point>
<res_time>2014-05-01 10:29:52</res_time>
<result_code>0</result_code>
</data>
<confirmation_key>ea7784d7d1d80cf94a4066ac48fa3088</confirmation_key>
</Root>
Groovy 代码
public static Map<String, ?> processRollbackResponse(String rollbackXmlResp, String requestTime){
Map rootMap = new LinkedHashMap();
def responseXml = new XmlParser().parseText(rollbackXmlResp);
responseXml.children().each { --> line no 172
def errorCodesList = new ArrayList<String>()
it.depthFirst().each { --> line no 174
switch(it.name()){ ----> failing here . line no175
}
}
}
return rootMap
}
我遇到了这个异常
groovy.lang.MissingMethodException: No signature of method: java.lang.String.name() is applicable for argument types: () values: []
Possible solutions: take(int), any(), any(groovy.lang.Closure), wait(), size(), dump()
at co.xx.app.point.util.Random.processRollbackResponse_closure2$_closure6(Random.groovy:175)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at co.xx.app.point.util.Random.processRollbackResponse_closure2(Random.groovy:174)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at co.xx.app.point.util.xx.processRollbackResponse(xx.groovy:172)
at co.xx.app.point.util.xxSpock.processRollbackSuccessResponse(xxSpock.groovy:246)
请帮我解决这个问题。
【问题讨论】:
-
你需要什么值?
标签: groovy xml-parsing java-8 closures