0
它是我以前的question的擴展。 如果我喜歡這個Groovy:刪除/添加Xml節點
<ClientInformation>
<FirstName>Steve</FirstName>
<LastName>Jobs</LastName>
<MiddleName/>
<DateOfBirth>09/18/2013</DateOfBirth>
<RoleTypeCT>OWN</RoleTypeCT>
<RoleTypeCT>IBE</RoleTypeCT>
<RoleTypeCT>Insured</RoleTypeCT>
</ClientInformation>
輸出XML輸入的XML應該是
<ClientInformation>
<FirstName>Steve</FirstName>
<LastName>Jobs</LastName>
<MiddleName/>
<DateOfBirth>09/18/2013</DateOfBirth>
<RoleTypeCT>OWN</RoleTypeCT>
</ClientInformation>
<ClientInformation>
<FirstName>Steve</FirstName>
<LastName>Jobs</LastName>
<MiddleName/>
<DateOfBirth>09/18/2013</DateOfBirth>
<RoleTypeCT>IBE</RoleTypeCT>
</ClientInformation>
<ClientInformation>
<FirstName>Steve</FirstName>
<LastName>Jobs</LastName>
<MiddleName/>
<DateOfBirth>09/18/2013</DateOfBirth>
<RoleTypeCT>Insured</RoleTypeCT>
</ClientInformation>
Groovy代碼
if(it.name()=="ClientInformation") {
println it.RoleTypeCT.size() //prints 3 on console
}
我想到的是以下步驟:
- 將
it
分配給本地變量。def clientInfo = it
- 從
clientInfo
中刪除所有RoleTypeCT
節點。試過clientInfo.RoleTypeCT.replaceNode{}
,但它給了我錯誤。 對於原始
it
中的每個RoleTypeCT,將RoleTypeCT
添加到clientInfo
。像it.RoleTypeCT.each { def roleType = it clientInfo.appendNode(roleType) }
東西,如果這種做法是確定的話怎麼會在首位刪除所有RoleTypeCT
節點?
同樣,這不是有效的XML輸出......你的意思是你想輸出3個單獨的文件?爲什麼不在你之前的問題中做XSLT來生成包裹在''節點中的3個節點,然後使用'XmlSlurper'將每個節點作爲單獨的文檔輸出(就像我最近對接受的答案的評論)? –
別擔心。每個輸出將轉到XSLT進行轉換,然後它將基於它的PK添加到父xml中。多個Xmls發生了多重轉換。 –
你知道我將如何從xml中刪除所有'RoleTypeCT'節點? –