如何使用xml2js向数组元素添加属性?

问题描述

我试图弄清楚如何向数组元素添加属性

尝试从对象构建以下XML时,出现错误Error: Invalid character in name

<?xml version="1.0" encoding="UTF-8"?>
<Requests xmlns="http://example.com">
    <Request>
    </Request>
    <Request>
    </Request>
</Requests>

这是我的对象

let myObject = {
 Requests:[
   {$:{xmlns:"http://example.com"}},{Request:{}},{Request:{}}
  ]
}
let builder = new xml2js.Builder();
let xml = builder.buildobject(myObject);
console.log(xml)

我也尝试过将名称用引号引起来

{"$":{"xmlns":"http://example.com"}},

完全去除属性声明会生成所需的XML,但显然会忽略所需的属性

<?xml version="1.0" encoding="UTF-8"?>
<Requests>
    <Request>
    </Request>
    <Request>
    </Request>
</Requests>

解决方法

我想你应该试试这个:

let myObject = {
 Requests:{
   $:{xmlns:"http://example.com"},Request:[{},{}]
}