0
でXMLPARSERを使用してノードリストにノードを追加します。 GroovyConsole内でテストしているコードは次のとおりです。このコードを実行すると、 "ADD FAILED"という出力が続き、NodeListの3つの要素のダンプが表示されます。私はXmlSlurperでも同じことを試みましたが、XmlSluperのDOMは基本的に変更不可能であり、変更はシリアル化中にのみ適用されることを読んだときにXmlParserに切り替えました。しかし、XmlParserでは、これはうまくいくのでしょうか?あなたがproperties
の子供ではなくproperty
ノード・リストに追加した場合は、私はGroovyで<code>XmlParser</code>を使用して<code>NodeList</code>に<code>Node</code>を追加すると、<code>NodeList</code>は、変更を反映するように表示されないのGroovy
def xml = '''
<site id='myCoolSite'>
<pages/>
<templates/>
<properties>
<property name='good' value='true'/>
<property name='nice' value='true'/>
<property name='expensive' value='false'/>
</properties>
<stuff/>
</site>
'''
site = new XmlParser().parseText(xml)
assert site != null
assert site.properties.property instanceof NodeList
assert site.properties.property.size() == 3
def newNode = new Node(null, "property", [name: "foo", value: "bar"])
site.properties.property.add(0, newNode)
def foo = site.properties.property.find { [email protected] == "foo" }
if (foo == null) {
println "ADD FAILED. Here are the only properties found: "
site.properties.property.each { println "${[email protected]}=${[email protected]}" }
}
else {
println "SUCCESS"
}