Неожиданный токен <при разборе XML в NodeJS - PullRequest
0 голосов
/ 30 марта 2019

Я пытался использовать xml-js и xml2js, но оба возвращают одну и ту же ошибку.

<?xml version="1.0" encoding="UTF-8"?>
^

SyntaxError: Unexpected token <
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:616:28)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)

Пример xml:

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Пример кода:

var notes =require('./test.xml')

var convert = require('xml-js');
var xml =notes;

var result1 = convert.xml2json(xml, {compact: true, spaces: 4});
var result2 = convert.xml2json(xml, {compact: false, spaces: 4});

console.log(result1, '\n', result2);

Можете ли вы помочь с решением этой проблемы? Я пытался использовать JSON.parse, JSON.stringify, но он все равно не работает.

Кстати, я пытаюсь проанализировать XML для преобразования в JSON.

1 Ответ

1 голос
/ 30 марта 2019

Проблема не в разборе XML, а в том, что вы используете require, который загружает модуль Node.js для чтения другого файла. Вместо этого вы должны использовать простой метод чтения файлов, например fs.readSync:

fs = require('fs');
var notes = fs.readFileSync('./test.xml')
...