我将包含下面的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 '' ' 劳尔 –