需要在 groovy 中获取具有特定子节点的 XML 节点的索引
Need to get the Index of a XML node with specific child in groovy
我是 groovy 脚本编写的新手,我很难解决这个问题。我需要一个 body 元素的索引,其中是一个带有错误消息的子元素。我尝试使用 findIndexValues()
,但没有得到我需要的结果
在此示例中,我的代码应 return 索引 0 和 2 。
<?xml version='1.0' encoding='UTF-8'?>
<root>
<Response>
<body>
<success>false</success>
<errors>
<statusCode>INVALID_EMAIL_ADDRESS</statusCode>
<message>Wrong E-Mail</message>
<fields>EMail</fields>
</errors>
<created>false</created>
</body>
<body>
<id>0015r00000DiP5HAAV</id>
<success>true</success><errors/>
<created>false</created>
</body>
<body>
<success>false</success>
<errors>
<statusCode>INVALID_EMAIL_ADDRESS</statusCode>
<message>Wrong E-Mail</message>
<fields>EMail</fields>
</errors>
<created>false</created>
</body><httpHeaders/>
<httpStatusCode>200</httpStatusCode>
<referenceId>UpdateAccount</referenceId>
</Response>
</root>
也许是
def root = new XmlSlurper().parseText(
'''<root>
<Response>
<body>
<success>false</success>
<errors>
<statusCode>INVALID_EMAIL_ADDRESS</statusCode>
<message>Wrong E-Mail</message>
<fields>EMail</fields>
</errors>
<created>false</created>
</body>
<body>
<id>0015r00000DiP5HAAV</id>
<success>true</success><errors/>
<created>false</created>
</body>
<body>
<success>false</success>
<errors>
<statusCode>INVALID_EMAIL_ADDRESS</statusCode>
<message>Wrong E-Mail</message>
<fields>EMail</fields>
</errors>
<created>false</created>
</body><httpHeaders/>
<httpStatusCode>200</httpStatusCode>
<referenceId>UpdateAccount</referenceId>
</Response>
</root>''')
def bodyIndices = root.Response.body.findIndexValues({ b -> b.errors.message.size() > 0 })
print(bodyIndices)
我是 groovy 脚本编写的新手,我很难解决这个问题。我需要一个 body 元素的索引,其中是一个带有错误消息的子元素。我尝试使用 findIndexValues()
,但没有得到我需要的结果
在此示例中,我的代码应 return 索引 0 和 2 。
<?xml version='1.0' encoding='UTF-8'?>
<root>
<Response>
<body>
<success>false</success>
<errors>
<statusCode>INVALID_EMAIL_ADDRESS</statusCode>
<message>Wrong E-Mail</message>
<fields>EMail</fields>
</errors>
<created>false</created>
</body>
<body>
<id>0015r00000DiP5HAAV</id>
<success>true</success><errors/>
<created>false</created>
</body>
<body>
<success>false</success>
<errors>
<statusCode>INVALID_EMAIL_ADDRESS</statusCode>
<message>Wrong E-Mail</message>
<fields>EMail</fields>
</errors>
<created>false</created>
</body><httpHeaders/>
<httpStatusCode>200</httpStatusCode>
<referenceId>UpdateAccount</referenceId>
</Response>
</root>
也许是
def root = new XmlSlurper().parseText(
'''<root>
<Response>
<body>
<success>false</success>
<errors>
<statusCode>INVALID_EMAIL_ADDRESS</statusCode>
<message>Wrong E-Mail</message>
<fields>EMail</fields>
</errors>
<created>false</created>
</body>
<body>
<id>0015r00000DiP5HAAV</id>
<success>true</success><errors/>
<created>false</created>
</body>
<body>
<success>false</success>
<errors>
<statusCode>INVALID_EMAIL_ADDRESS</statusCode>
<message>Wrong E-Mail</message>
<fields>EMail</fields>
</errors>
<created>false</created>
</body><httpHeaders/>
<httpStatusCode>200</httpStatusCode>
<referenceId>UpdateAccount</referenceId>
</Response>
</root>''')
def bodyIndices = root.Response.body.findIndexValues({ b -> b.errors.message.size() > 0 })
print(bodyIndices)