合并具有相似父节点,xml,nodejs的子节点

时间:2020-07-31 05:19:15

标签: node.js xml xml2js

我正在使用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>

如您所见,它们是需要单独标识的父“对象”中的多个对象,但是子对象“参数”中的属性需要合并为单个子对象。有什么可行的方法吗?

0 个答案:

没有答案
相关问题