我有一个可能的节点名称数组,我需要遍历数组,如果node.text()不为null或为空,则将其附加到字符串以构建XML字符串。
我正在解析Excel电子表格,每一行都变成一条记录,然后每条记录由XmlSlurper()解析.parseText()
我的问题是我无法使用currentNode.val.text(),currentNode。“$ {val}”。text()来获取文本,但是它将使用currentNode.node1来提取文本。文本()。
allFields = ["node1","node2","node3"]
NodeChild currentNode = it
for (int z=0; z<allFields.size; z++){
val = allFields[z[.toString()
if (currentNode.val.text() == null || currentNode.val.text() ==""){
do something
}
else{
do something else
}
}
答案 0 :(得分:0)
currentNode.val.text()
将拉出节点val
。您可以只搜索您的节点:
def xmlText = '''\
<?xml version="1.0" encoding="utf-8"?>
<root>
<node1>some 1</node1>
<node2>some 2</node2>
<node3></node3>
<node4>some 4</node4>
<node5>some 5</node5>
</root>'''
def xml = new XmlSlurper().parseText(xmlText)
def whitelist = ['node1', 'node3']
xml.'**'.findAll{ it.name() in whitelist }.each{
if (!it.text()) {
println 'Emtpy'
} else {
println "Hit: ${it.text()}"
}
}