0

我在 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。

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

4

1 回答 1

1

sites查看对象时不需要xmlConfig

sites是根节点,所以暗示,试试:

assert xmlConfig.site.size() == 2

此外,xmlConfig.site是 的一个实例NodeChildren,但您似乎声明了一个返回类型GPathResult

而且我不确定您的findAll通话结束时缺少什么,因为应该使用闭包或空括号

于 2014-01-27T12:41:30.453 回答