XML ドキュメントを読み取り、値を変更してから保存する必要があるグルーヴィーなシステム バッチ スクリプトがあります。
値を読み取って書き込む方法を理解しました。「メンバー」とその値を削除する方法を一生理解できません。すべてのメンバーを削除して、それを理解できないカスタム ファイル名に置き換える必要があります。
XML は次のようになります。
<types>
<members>*</members>
<members>Account</members>
<members>Activity</members>
<members>Contact</members>
<members>Task</members>
<members>User</members>
<members>ContentVersion</members>
<name>CustomObject</name>
</types>
「CustomObject」という名前を検索し、次の文字列を使用して兄弟のすべてのメンバーを削除します。
def replace = "MyCustomFile"
したがって、XML は次のようになります。
<types>
<members>MyCustomFile</members>
<name>CustomObject</name>
</types>
オンラインで見つけた以下のコードを試しました
println "Testing Slurper"
def root = new XmlSlurper().parse(new File(theFile))
root.types.each { types ->
println "names: ${types.name}"
types.members.each {
println "members: " + it.text()
}
}
println "Testing replace"
def book = "Booking__c"
def cleanUpNode(node) {
println node
def childs = node.children()
def remove = []
childs.each {
if (it instanceof Node) {
if (!it.children()) {
remove.add it
} else {
cleanUpNode it
if (!it.children()) {
remove.add it
}
}
}
}
remove.each { node.remove(it) }
}
cleanUpNode root.types.name
実際には何も削除していませんが、これは出力でした:
<tag0:types>
<tag0:members>*</tag0:members>
<tag0:members>Account</tag0:members>
<tag0:members>Activity</tag0:members>
<tag0:members>Contact</tag0:members>
<tag0:members>Task</tag0:members>
<tag0:members>User</tag0:members>
<tag0:members>ContentVersion</tag0:members>
<tag0:name>CustomObject</tag0:name>
</tag0:types>
私はまだこれのコツをつかもうとしているので、どんな助けでも素晴らしいでしょう