我遇到了这个奇怪的问题,即在groovy中通过XMLSlurper解析xml,它显示的大小为0.无法找出原因。
我的xml文件如下:
<?xml version="1.0" encoding="iso-8859-1"?>
<sites>
<site name="OctUK">
<property name="warName">OctUKbuild-Deployable</property>
</site>
<site name="GbsJP">
<property name="warName">GbsJPbuild-Deployable</property>
</site>
</sites>
代码:
findSite("${project.GTA_BUILD_HOME}/platforms/pos/config/pos-sites.xml")
//Passed the path of the xml file to the method below:
GPathResult findSite(String sitesXml) {
xmlConfig = new XmlSlurper().parse(new File(sitesXml))
def siteGPath = xmlConfig.sites.site.findAll
// Check that a POS-sites.xml is valid
assert siteGPath.size() != 0, 'Error: no site found'
return(siteGPath)
}
该方法失败,并显示错误:找不到站点,因为它将siteGPath的结果设为0.不确定为什么它将结果设为0.它的大小应为2.
我做错了什么。任何帮助深表感谢。我被困在这一点上。
答案 0 :(得分:1)
查看sites
对象时,您不需要xmlConfig
。
sites
是根节点,因此暗示,请尝试:
assert xmlConfig.site.size() == 2
此外,xmlConfig.site
是NodeChildren
的一个实例,但您似乎声明返回类型为GPathResult
我不确定你的findAll
电话会议结束时缺少什么,因为这应该是关闭或空括号