我將包含下面的xml結構:appendNode在特定位置使用xmlSlurper
@Rao,@tim_yates。實際的XML是:
<prnReq>
<ltrPrnReqs>
<ltrPrnReq>
<ltrData>encoded64 text</ltrData>
</ltrPrnReq>
</ltrPrnReqs>
</prnReq>
我需要包括一個新的節點。新的XML必須是:
<prnReq>
<ltrPrnReqs>
<ltrPrnReq>
<ltrData>
<Salutation>text</Salutation>
</ltrData>
</ltrPrnReq>
</ltrPrnReqs>
</prnReq>
的問題是如何在追加一個新的節點?
我發現很多樣本如何使用appendNode,但是,它始終是一個 root.child。我需要進一步去我的XML結構,追加一個節點在
prnReq.ltrPrnReqs.ltrPrnReq.ltrData
節點被列入爲<salutation>
任何意見都歡迎。
下面是當前的代碼。 非常感謝!
import groovy.xml.QName
import groovy.xml.StreamingMarkupBuilder
import groovy.xml.XmlUtil
File doc = new File("C:/Temp/letter_.xml")
def prnReq = new XmlSlurper().parse(doc)
prnReq.ltrPrnReqs.ltrPrnReq.each {
def encodedString = it.ltrData.toString()
Base64.Decoder decoder = Base64.getMimeDecoder()
byte[] decodedByteArray = decoder.decode(encodedString)
def output = new String(decodedByteArray)
println output
output.splitEachLine(';') { items ->
println "raSalutation: " + items[0]
println "raFromAcc: " + items[1]
println "raPayableTo: " + items[2]
println "raSortCode: " + items[3]
println "raAccNum: " + items[4]
println "raReference: " + items[5]
println "raSendDate: " + items[6]
println "raRecDate: " + items[7]
println "raAmount: " + items[8]
println "raDummy1: " + items[9]
println "raFirstAmt: " + items[10]
println "raFirstDate: " + items[11]
println "raRegularAmt: " + items[12]
println "raRegularDate: " + items[13]
println "raFrequency: " + items[14]
println "raFee: " + items[15]
def toAdd = '"<salutation>$item[0]</salutation>"'
fragToAdd = new XmlSlurper().parseText(toAdd)
prnReq.ltrPrnReqs.ltrPrnReq.ltrData.appendNode(fragToAdd)
}
String outputFileName = "C:/Temp/letter_.xml"
XmlUtil xmlUtil = new XmlUtil()
xmlUtil.serialize(prnReq, new FileWriter(new File(outputFileName)))
}
你能告訴你的XML? – Rao
@Rao喜實際的XML是: encoded64文本 ***************************** ********************** 我需要在中包含一個新節點。新的XML必須是: 夫人XXX –
@Rao喜實際的XML是: ''' '' '' encoded64文本 ' ************************************************** * 我需要在中包含一個新節點。新的XML必須是: ''' '' '' '' 夫人 XXX '' ' 勞爾 –