Groovy-XmlSlurper-count节点
我是Groovy的新手,最近我需要计算给定XML数据块的复杂性 我找到了一种确定数据块是否为XML格式的方法。但我不知道如何计算给定XML块的所有节点 这是我的密码:Groovy-XmlSlurper-count节点,groovy,counting,xmlslurper,Groovy,Counting,Xmlslurper,我是Groovy的新手,最近我需要计算给定XML数据块的复杂性 我找到了一种确定数据块是否为XML格式的方法。但我不知道如何计算给定XML块的所有节点 这是我的密码: def invoke(msg) { try { contentBody = msg.get("my.message"); new XmlSlurper().parseText(contentBody); Trace.debug("XML is we
def invoke(msg)
{
try {
contentBody = msg.get("my.message");
new XmlSlurper().parseText(contentBody);
Trace.debug("XML is well formed, request body is " + contentBody);
return true;
}
catch (Exception e){
Trace.error("Invalid xml, request body is " + contentBody);
return false;
}
}
非常感谢
干杯,
文森特,你试过以下方法吗
新建XmlSlurper().parseText(…).depthFirst().size()您尝试过以下方法吗
新的XmlSlurper().parseText(…).depthFirst().size()因此,问题有两个方面 1) 检查xml是否有效 2) 计算某个节点下的节点数 假设您的xml格式不正确(注意:标记中缺少了)
<note>
<to>Tove</to>
<from
<test>121</test>
<testing>123</testing>
</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
当XML正确时。它给出以下输出
请注意如果您提供了错误的xpath,那么也可能会因此产生异常。因此,不一定是无效的XML。但是e i.e异常详细信息将帮助您了解问题
我觉得使用xmlHolder和XMLParser/XMLSlurper都很容易,所以有两个问题 1) 检查xml是否有效 2) 计算某个节点下的节点数 假设您的xml格式不正确(注意:标记中缺少了)
<note>
<to>Tove</to>
<from
<test>121</test>
<testing>123</testing>
</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
当XML正确时。它给出以下输出
请注意如果您提供了错误的xpath,那么也可能会因此产生异常。因此,不一定是无效的XML。但是e i.e异常详细信息将帮助您了解问题
我觉得使用xmlHolder比使用XMLParser/XMLSlurper更容易
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
try
{
def xmlHolder = groovyUtils.getXmlHolder("RequestName#Request")
def countofRoot = xmlHolder.getDomNodes("//*").size()
def countofbelowNodes = xmlHolder.getDomNodes("//*:from/*").size()
log.info "size of XML is " + countofRoot
log.info "size of XML is " + countofbelowNodes
}
catch(Exception e)
{
log.error "Invalid XML"
log.error e
}