I just recently started learning js and trying to solve the problem of converting xml source file
<ns1:input xmlns:ns1="ns1:test" xmlns:ns2="ns2:test">
<ns1:element id="1">
<ns2:field1>1</ns2:field1>
<ns2:field2>2</ns2:field2>
<ns2:field3>3</ns2:field3>
</ns1:element>
<ns1:element id="2">
<ns2:field1>4</ns2:field1>
<ns2:field2>5</ns2:field2>
<ns2:field3>6</ns2:field3>
</ns1:element>
</ns1:input>
to json of the following content
{
"elements":[
{
"element":{
"field1":"1",
"field2":"2",
"field3":"3",
"id":"1"
}
},
{
"element":{
"field1":"4",
"field2":"5",
"field3":"6",
"id":"2"
}
}
]
}
using javascript. I tried to solve the problem using the xml2json library - it turned out not quite what I needed. Can you please tell me how this can be implemented?
Below is code and output
var convert = require('xml-js');
var xml =
'<ns1:input xmlns:ns1="ns1:test" xmlns:ns2="ns2:test">'+
'<ns1:element id="1">'+
'<ns2:field1>1</ns2:field1>'+
'<ns2:field2>2</ns2:field2>'+
'<ns2:field3>3</ns2:field3>' +
'</ns1:element>'+
'<ns1:element id="2">'+
'<ns2:field1>4</ns2:field1>'+
'<ns2:field2>5</ns2:field2>'+
'<ns2:field3>6</ns2:field3>'+
'</ns1:element>'+
'</ns1:input>';
var result2 = convert.xml2json(xml, {compact: true, spaces: 2, ignoreAttributes:true});
console.log(result2);
result
{
"ns1:input": {
"ns1:element": [
{
"ns2:field1": {
"_text": "1"
},
"ns2:field2": {
"_text": "2"
},
"ns2:field3": {
"_text": "3"
}
},
{
"ns2:field1": {
"_text": "4"
},
"ns2:field2": {
"_text": "5"
},
"ns2:field3": {
"_text": "6"
}
}
]
}
}