我正在使用xml2js在builder方法的帮助下将js对象转换为xml。 js对象:
let rules={
objects : [
{
object: {
$: {
id: '1'
},
parameters: [
{
parameter:{
ob_name: 'aaaaa',
selector : 'in',
value : '50',
}
},
{
joiner : 'or',
additionalParameters:{
ob_name: 'bbbb',
selector: 'out',
value: '30',
},
},
{
joiner : 'and',
additionalParameters:{
ob_name: 'cccc',
selector: 'in',
value: '20',
},
}
],
actions: {
action: {
activity:'call',
operation:{
name:'random',
id:'304234',
number:'0721333422'
},
period:'6'
}
},
}
},
{
object: {
$: {
id: '2'
},
parameters: [
{
parameter:{
ob_name: 'ddddd',
selector : 'in',
value : '40',
}
},
{
joiner : 'or',
additionalParameters:{
ob_name: 'eeeee',
selector: 'in',
value: '30',
},
},
],
actions: {
action: {
activity:'or',
operation:{
name:'fffff',
id:'out',
number:'10'
},
period:'4'
}
},
}
}
]
};
xml输出:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<objects>
<object id="1">
<parameters>
<parameter>
<ob_name>aaaaa</ob_name>
<selector>in</selector>
<value>50</value>
</parameter>
</parameters>
<parameters>
<joiner>or</joiner>
<additionalParameters>
<ob_name>bbbb</ob_name>
<selector>out</selector>
<value>30</value>
</additionalParameters>
</parameters>
<parameters>
<joiner>and</joiner>
<additionalParameters>
<ob_name>cccc</ob_name>
<selector>in</selector>
<value>20</value>
</additionalParameters>
</parameters>
<actions>
<action>
<activity>call</activity>
<operation>
<name>random</name>
<id>304234</id>
<number>0721333422</number>
</operation>
<period>6</period>
</action>
</actions>
</object>
<object id="2">
<parameters>
<parameter>
<ob_name>ddddd</ob_name>
<selector>in</selector>
<value>40</value>
</parameter>
</parameters>
<parameters>
<joiner>or</joiner>
<additionalParameters>
<ob_name>eeeee</ob_name>
<selector>in</selector>
<value>30</value>
</additionalParameters>
</parameters>
<actions>
<action>
<activity>or</activity>
<operation>
<name>fffff</name>
<id>out</id>
<number>10</number>
</operation>
<period>4</period>
</action>
</actions>
</object>
</objects>
我需要的输出是:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<objects>
<object id="1">
<parameters>
<parameter>
<ob_name>aaaaa</ob_name>
<selector>in</selector>
<value>50</value>
</parameter>
<joiner>or</joiner>
<additionalParameters>
<ob_name>bbbb</ob_name>
<selector>out</selector>
<value>30</value>
</additionalParameters>
<joiner>and</joiner>
<additionalParameters>
<ob_name>cccc</ob_name>
<selector>in</selector>
<value>20</value>
</additionalParameters>
</parameters>
<actions>
<action>
<activity>call</activity>
<operation>
<name>random</name>
<id>304234</id>
<number>0721333422</number>
</operation>
<period>6</period>
</action>
</actions>
</object>
<object id="2">
<parameters>
<parameter>
<ob_name>ddddd</ob_name>
<selector>in</selector>
<value>40</value>
</parameter>
<joiner>or</joiner>
<additionalParameters>
<ob_name>eeeee</ob_name>
<selector>in</selector>
<value>30</value>
</additionalParameters>
</parameters>
<actions>
<action>
<activity>or</activity>
<operation>
<name>fffff</name>
<id>out</id>
<number>10</number>
</operation>
<period>4</period>
</action>
</actions>
</object>
</objects>
如您所见,它们是需要单独标识的父“对象”中的多个对象,但是子对象“参数”中的属性需要合并为单个子对象。有什么可行的方法吗?