意外的令牌<在NodeJS中解析XML时

时间:2019-03-30 16:21:20

标签: node.js xml xml-parsing

我尝试使用xml-jsxml2js,但是两者都返回相同的错误。

<?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.parseJSON.stringify,但仍然无法正常工作。

顺便说一下,我正在尝试解析XML以转换为JSON。

1 个答案:

答案 0 :(得分:1)

问题不在于XML解析,而在于您正在使用require,它会加载Node.js模块以读取另一个文件。相反,您应该使用一种简单的文件读取方法,例如fs.readSync

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