我想要的 XML 格式如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<billFetchRequest>
<inputParams>
<input>
<paramName>Customer ID</paramName>
<paramValue>5453401</paramValue>
</input>
<input>
<paramName>Mobile</paramName>
<paramValue>96996213</paramValue>
</input>
<input>
<paramName>Name</paramName>
<paramValue>96996231</paramValue>
</input>
</inputParams>
</billFetchRequest>
为了转换它,我编写了如下所示的代码:
const o2x = require("object-to-xml");
const tesF = (req,res) =>{
let data = {
'?xml version=\"1.0\" encoding=\"UTF-8\"?': null,
billFetchRequest: {
inputParams: [{
input: {
paramName: 'Customer ID',
paramValue: req.query.crn
}
}, {
input: {
paramName: 'Mobile',
paramValue: req.query.ph_no
}
}, {
input: {
paramName: 'Name',
paramValue: req.query.ph_no
}
}]
}
};
}
console.log(o2x(data))
但不知怎的,它给了我如下所示的输出:
<?xml version="1.0" encoding="UTF-8"?>
<billFetchRequest>
<inputParams>
<input>
<paramName>Customer ID</paramName>
<paramValue>54543401</paramValue>
</input>
</inputParams>
<inputParams>
<input>
<paramName>Mobile</paramName>
<paramValue>9699623113</paramValue>
</input>
</inputParams>
<inputParams>
<input>
<paramName>Name</paramName>
<paramValue>9699623113</paramValue>
</input>
</inputParams>
</billFetchRequest>
每个阶段都有额外的 inputParams
标记关闭。它们可以通过对象删除吗?
我正在使用这个npm package
最佳答案
const o2x = require("jsontoxml");
let data = {
'?xml version=\"1.0\" encoding=\"UTF-8\"?': null,
billFetchRequest: {
inputParams: [{
input: {
paramName: 'Customer ID',
paramValue: 'req.query.crn'
}
}, {
input: {
paramName: 'Mobile',
paramValue: 'req.query.ph_no'
}
}, {
input: {
paramName: 'Name',
paramValue: 'req.query.ph_no'
}
}]
}
};
console.log(o2x(data))
关于javascript - 将对象序列化为 XML 会破坏结构定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57584876/