javascript - 将对象序列化为 XML 会破坏结构定义

标签 javascript node.js xml

我想要的 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/

相关文章:

javascript - JQuery - 单击复选框容器有效,单击复选框无效

node.js - 升级 NodeJS 应用程序

javascript - Fs 没有正确保存文件以及如何简化此代码

javascript 如何在创建对象后将新对象添加到对象中

javascript - window.open 在 Firefox 55.0.1 上无法正常工作

javascript - 如何使用Jquery在单击按钮时页面上的许多div中以div中的表单获取数据

android - 在android上解析socket.io数据。 (Gottox Socket.IO)

java - 单击按钮时更改位置?

c# - 将枚举序列化为 XML 属性

c++ - 使用 Boost 更好的 XML 格式化?