我的GPathResult可以使用3种方式之一的名称节点
1)名称节点存在并具有值
前:约翰
2)名称节点存在,但没有值.
3)根本没有名称节点.
在Groovy代码中,我如何使用我的Gpathresult区分上述3个案例.我是否使用像gPathResult这样的东西. value()!= null?
Pesudo代码:
if(name node is present and has a value){ do this } if(name node exists,but has no value in it){ do this } if( No name node exists at all){ do this }
解决方法
你必须测试size().
为了保持Olivier的例子,只需修复以便使用GPathResult并且它可以同时使用XmlSlurper和XmlParser代码:
为了保持Olivier的例子,只需修复以便使用GPathResult并且它可以同时使用XmlSlurper和XmlParser代码:
def xml="<a><b>yes</b><c></c></a>" def gpath = new XmlSlurper().parse(new ByteArrayInputStream(xml.getBytes())) ["b","c","d" ].each() { println it if (gpath[it].size()) { println " exists" println gpath[it].text() ? " has value" : " doesn't have a value" } else { println " does not exist" } }