Inconsistent mapping of XML to JS
I have XML which contains a Purchase which has an optional attribute called purchaseClass.
So the XML could look like this:
<Purchase purchaseClass="Test_Class">Test_Purchase</Purchase>
or this: <Purchase>Test_Purchase</Purchase>
I'm using the following code to convert the above XML string into JS:
const options: X2JS.Options = { };
const x2js = new X2JS(options);
const obj = x2js.xml2js(xml);
This works as expected when the purchaseClass attribute and the inner text is specified. The resulting converted JS object looks like this:
Purchase: {
_purchaseClass: 'Test_Class',
__text: 'Test_Purchase'
}
The problem occurs if purchaseClass is not included. In this case, the converted javascript object looks like this, where the Purchase property is a string rather than an object:
Purchase: 'Test_Purchase'
Here is the example, where the purchaseClass property is optional.
arrayAccessForm is a config property that allows you to identify arrays in your XML. Is there a similar concept for objects with optional properties to avoid having the issue described above?
This is a huge issue for this library. Unless x2js is in maintenance mode, the author needs to address this ASAP.