43 lines
852 B
JavaScript
43 lines
852 B
JavaScript
import { XMLParser, XMLBuilder } from "fast-xml-parser";
|
|
|
|
const input = `
|
|
|
|
`;
|
|
|
|
function convert(element) {
|
|
const codes = [
|
|
...element.MouseRect.CallbackCode.matchAll(/([\d]*)[\s]*\(>L:CEVENT\)/gm),
|
|
].map((m) => m[1]);
|
|
|
|
return {
|
|
"@_Name": "MD11_Button",
|
|
NODE_ID: element.Name,
|
|
CODE_PRESS: `${codes[0]} (>L:CEVENT)`,
|
|
CODE_RELEASE: `${codes[1]} (>L:CEVENT)`,
|
|
};
|
|
}
|
|
|
|
const parser = new XMLParser({
|
|
ignoreAttributes: false,
|
|
});
|
|
let jObj = parser.parse(input);
|
|
|
|
const output = [];
|
|
|
|
if (Array.isArray(jObj.PartInfo)) {
|
|
jObj.PartInfo.forEach((element) => {
|
|
output.push(convert(element));
|
|
});
|
|
} else {
|
|
output.push(convert(jObj.PartInfo));
|
|
}
|
|
|
|
const builder = new XMLBuilder({
|
|
ignoreAttributes: false,
|
|
arrayNodeName: "UseTemplate",
|
|
format: true,
|
|
});
|
|
const xmlContent = builder.build(output);
|
|
|
|
console.log(xmlContent);
|