package [Link].
t24;
import [Link];
import [Link];
import [Link];
import [Link].*;
public class ConvertXml {
public static final String folderPath = "D:\\TaskOfJoy";
public static String convertToXml(String inputText) {
var xml = new StringBuilder();
[Link]("<Document
xmlns=\"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08\">\n");
[Link](" <FIToFICstmrCdtTrf>\n");
// Extract and convert <GrpHdr>
var grpHdrMatcher = [Link]("<GrpHdr>(.*?)</GrpHdr>",
[Link]).matcher(inputText);
if ([Link]()) {
var grpHdrBlock = [Link](1);
[Link](" <GrpHdr>\n");
convertKeyValueBlock(grpHdrBlock, xml, 6);
[Link](" </GrpHdr>\n");
}
// Extract and convert <CdtTrfTxInf>
var txInfMatcher = [Link]("<CdtTrfTxInf>(.*?)</CdtTrfTxInf>",
[Link]).matcher(inputText);
if ([Link]()) {
var txBlock = [Link](1);
[Link](" <CdtTrfTxInf>\n");
for (var line : [Link]("\\n")) {
line = [Link]();
if ([Link]()) continue;
// Keep nested tags untouched
if ([Link]("<") && [Link](">") && !
[Link]("=")) {
[Link](" ").append(line).append("\n");
continue;
}
if ([Link]("=")) {
var lastEqual = [Link]('=');
if (lastEqual == -1) continue;
var left = [Link](0, lastEqual).trim();
var value = [Link](lastEqual + 1).trim().replace("\"",
"");
if ([Link]()) continue;
if ([Link](" ")) {
var tag = [Link](0, [Link](" ")).trim();
var attr = [Link]([Link](" ") + 1).trim();
[Link](" <").append(tag).append("
").append(attr).append(">")
.append(value).append("</").append(tag).append(">\
n");
} else {
var tag = [Link]("\"", "");
[Link](" <").append(tag).append(">").append(value)
.append("</").append(tag).append(">\n");
}
}
}
[Link](" </CdtTrfTxInf>\n");
}
[Link](" </FIToFICstmrCdtTrf>\n");
[Link]("</Document>\n");
return [Link]();
}
private static void convertKeyValueBlock(String block, StringBuilder xml, int
indent) {
var lines = [Link]("\\n");
var pad = " ".repeat(indent);
for (var line : lines) {
line = [Link]();
if ([Link]("=")) {
var parts = [Link]("=", 2);
var key = parts[0].trim().replaceAll("\\s+", "");
var value = parts[1].trim();
if (![Link]()) {
[Link](pad).append("<").append(key).append(">").append(value)
.append("</").append(key).append(">\n");
}
}
}
}
public static void main(String[] args) {
String inputText =
"Hello this is ECB. We are working On Swift" +
"Excellence IN Core Banking";
var fileName = "[Link]";
var xmlOutput = convertToXml(inputText);
var outputPath = [Link](folderPath, fileName);
synchronized ([Link]) {
try {
[Link](outputPath, xmlOutput);
[Link]("Written to: " + outputPath);
} catch (IOException e) {
[Link]();
}
}
}
}