xml - 如何使用 GPathResult 获取下一个 sibling

标签 xml groovy xmlslurper gpath

如何获取 GPathResult 的下一个兄弟节点?例如我有以下代码:

def priorityIssue = xmlReport.'**'.find { Issue ->
   Issue.Priority.text() == priority
}

如何获得 priorityIssue 的下一个同级?

谢谢!

最佳答案

或多或少这是要走的路:

import groovy.util.XmlSlurper

def xml = new XmlSlurper().parseText('''
<issues>
    <issue>
        <id>1</id>
        <priority>1</priority>
    </issue>
    <issue>
        <id>2</id>
        <priority>2</priority>
    </issue>
</issues>
''')
def p = '1' 
def priorityIssue = xml.'**'.find { issue ->
    issue.priority.text() == p
}
def kids = priorityIssue.parent().children().list()
def idx = kids.indexOf(priorityIssue)
def sibling = kids[++idx]
assert sibling.id.text() == '2'

关于xml - 如何使用 GPathResult 获取下一个 sibling ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29652995/

相关文章:

iphone - Three20 - TTStyledTextLabel 遇到 base64 图像数据而不是 URL - 崩溃

java - 如何以编程方式向 ImageView 添加圆角边框?

xml - 如何使用客户端的私钥在服务器上对 XML 进行外部签名(仅发送哈希,而不是完整的 xml)

grails - 使用XmlSlurper解析时如何使用带点的配置条目

java - mkp.yieldUnescaped 不起作用

groovy - 更改 XML 标签名称

java - Android studio 中按钮不是正方形但宽度和高度相同?

ubuntu - 如何将一些输出打印到终端以及文件

xml - 使用 XMLSlurper 迭代文件时如何修改 XML 节点属性?

gradle - 使用其中的Groovy扩展方法构建项目