私はarmlistをxmlで繰り返し、arraylistに存在する値のリストを持つ別のxmlを作成しています。ここでコードがXML GroovyでArrayListを繰り返し処理する
import groovy.xml.MarkupBuilder
def books='''
<response version-api="2.0">
<value>
<a>2</a>
<b>3</b>
<e>4</e>
</value>
</response>'''
def lst=["a","b","c","d"]
def sw = new StringWriter()
def xml = new groovy.xml.MarkupBuilder(sw)
xml.langs {
for(String str: lst) {
def response = new XmlSlurper().parseText(books)
response.value.'*'.find{ node->
if(node.name() == str) {
"${str}"(node)
}
}
}
}
println sw
このコードを使用していていることはどのように配列リスト中に存在している親のすべての子ノードを取得する子ノードを持たないXMLのため正常に動作しています。例えば、私のリストと入力aおよびbがリストに存在し、ノードEはBの一部であり、Gがリストに存在しないので、対応するXML出力
であるべき次lst=["a","b","c","d"]
def books='''
<response version-api="2.0">
<value>
<a>2</a>
<b>
<e>4</e>
</b>
<g>123</g>
</value>
</response>'''
を有する場合
<response version-api="2.0">
<value>
<a>2</a>
<b>
<e>4</e>
</b>
</value>
</response>'''
ノード 'g'を削除しますか? – Rao