通过XML Slurper解析Groovy中的XML

时间:2014-01-27 12:38:55

标签: groovy xmlslurper

我遇到了这个奇怪的问题,即在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.

我做错了什么。任何帮助深表感谢。我被困在这一点上。

1 个答案:

答案 0 :(得分:1)

查看sites对象时,您不需要xmlConfig

sites是根节点,因此暗示,请尝试:

assert xmlConfig.site.size() == 2

此外,xmlConfig.siteNodeChildren的一个实例,但您似乎声明返回类型为GPathResult

我不确定你的findAll电话会议结束时缺少什么,因为这应该是关闭或空括号