Не получается сконвертировать xml в json

Я делаю конвертер XML ⇆ JSON. При попытке вызвать функцию xml2json выскакивает ошибка:

Error: Text data outside of root node.
Line: 0
Column: 20
Char: ]
    at error (sax.js:651)
    at strictFail (sax.js:677)
    at SAXParser.write (sax.js:1035)
    at module.exports (xml2js.js:346)
    at Object.module.exports [as xml2json] (xml2json.js:13)
    at xml2json (main.js:44)
    at HTMLButtonElement.convert (main.js:57)

Вот код, которые ее вызывает:

function xml2json() {
    try {
        let convert = require('xml-js');
        let xmlParser = new DOMParser();
        let xml = xmlParser.parseFromString(rightTextArea.value, 'text/xml');
        console.log(xml);
/*-->*/ leftTextArea.value = convert.xml2json(xml, { compact: false, spaces: 4 });
    } catch (e) {
        console.log(e);
    }
}

leftTextArea - форма для JSON-формата rightTextArea - форма для XML-формата Пример XML, на котором программа некорректно работает

<?xml version="1.0" encoding="UTF-8" ?>
<employees>
    <employee>
        <id>1</id>
        <firstName>Scarlett</firstName>
        <lastName>Johansson</lastName>
        <photo>http://si.wsj.net/public/resources/images/BN-BY925_mag041_OZ_20140318165119.jpg</photo>
    </employee>
    <employee>
        <id>2</id>
        <firstName>Chris</firstName>
        <lastName>Evans</lastName>
        <photo>https://pbs.twimg.com/profile_images/605082381528096769/gt_sJRot.png</photo>
    </employee>
    <employee>
        <id>3</id>
        <firstName>Jeremy</firstName>
        <lastName>Renner</lastName>
        <photo>https://pbs.twimg.com/profile_images/603945839795412992/XTssKbRC.jpg</photo>
    </employee>
</employees>


Ответы (1 шт):

Автор решения: Руслан Мамедов

Я решил свою проблему, мне в этом помогла вот эта ссылка. Вот код

function xml2json() {
    try {
        let convert = require('xml-js');
        let iconvlite = require('iconv-lite');
        let xml = iconvlite.decode(rightTextArea.value, "UTF-8");
        leftTextArea.value = convert.xml2json(xml, { compact: false, spaces: 4 });
    } catch (e) {
        console.log(e);
    }
}
→ Ссылка