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

问题描述 投票:0回答:1

我试图使用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。

node.js xml xml-parsing
1个回答
1
投票

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

fs = require('fs');
var notes = fs.readFileSync('./test.xml')
© www.soinside.com 2019 - 2024. All rights reserved.