首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Groovy XMLSlurper解析值

Groovy XMLSlurper解析值
EN

Stack Overflow用户
提问于 2017-05-30 23:35:26
回答 1查看 718关注 0票数 1

我离完成我的代码太近了。我只想得到数组中的值。现在,我正在获得XML声明和行。

这是我的密码:

代码语言:javascript
复制
import groovy.xml.XmlUtil

def serverList = new 
XmlSlurper().parse("/app/jenkins/jobs/firstsos_servers.xml")

def output = []
serverList.Server.find { it.@name == SERVER}.CleanUp.GZIP.File.each{
     output.add(XmlUtil.serialize(it))
}

return output

以下是我的XML文件:

代码语言:javascript
复制
<ServerList>
    <Server name="testserver1">
            <CleanUp>
                    <GZIP>
                            <File KeepDays="30">log1</File>
                            <File KeepDays="30">log1.2</File>
                    </GZIP>
            </CleanUp>
    </Server>
    <Server name="testserver2">
            <CleanUp>
                    <GZIP>
                            <File KeepDays="30">log2</File>
                    </GZIP>
            </CleanUp>
    </Server>
    <Server name="testserver3">
            <CleanUp>
                    <GZIP>
                            <File KeepDays="30">log3</File>
                    </GZIP>
            </CleanUp>
    </Server>

当我选择testserver1时,我的输出应该是:

代码语言:javascript
复制
['log1','log1.2']

我得到的是:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?><File KeepDays="30">log1</File>
<?xml version="1.0" encoding="UTF-8"?><File KeepDays="30">log2</File>
EN

回答 1

Stack Overflow用户

发布于 2017-05-31 07:13:46

代码语言:javascript
复制
def output = []
def node = serverList.Server.find {
    it.'name' = 'testserver1'
}.CleanUp.GZIP.File.each {
    output.add(it)
}

return output

此外,在您的.xml中存在一个复制和粘贴错误。您必须在末尾添加</ServerList>。`

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44273476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档