Je vais inclure la structure XML ci-dessous:appendNode utilisant XmlSlurper dans une position spécifique
@Rao, @tim_yates. Le xml réel est:
<prnReq>
<ltrPrnReqs>
<ltrPrnReq>
<ltrData>encoded64 text</ltrData>
</ltrPrnReq>
</ltrPrnReqs>
</prnReq>
Je dois inclure un nouveau nœud dans. Le nouveau fichier XML doit être:
<prnReq>
<ltrPrnReqs>
<ltrPrnReq>
<ltrData>
<Salutation>text</Salutation>
</ltrData>
</ltrPrnReq>
</ltrPrnReqs>
</prnReq>
La question est de savoir comment ajouter un nouveau nœud?
J'ai trouvé de nombreux exemples d'utilisation de appendNode, mais il s'agit toujours d'un root.child. Je dois aller plus loin dans ma structure XML et ajoutez un nœud à
prnReq.ltrPrnReqs.ltrPrnReq.ltrData
le nœud à inclure est <salutation>
Tous les commentaires sont les bienvenus.
Sous le code actuel. Merci beaucoup!
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)))
}
Pouvez-vous montrer votre xml? – Rao
Salut @Rao le xml réelle est: encoded64 texte ***************************** ********************** Je dois inclure un nouveau nœud dans . Le nouveau fichier XML doit être: Mme XXX –
Salut @Rao le xml réelle est: '' '' '' ' texte encoded64 ' ********************************************** * Je dois inclure un nouveau nœud dans . Le nouveau XML doit être: '' '' '' '' ' Mme XXX ' ' ' –