尝试学习将XML转换为JSON,以便将一些旧的cURL命令转换为脚本,我已经阅读了一些问答并编写了以下模块:
fs = require('fs')
const xmlFle = require('./file.xml')
const parser = require('xml2json')
module.exports = fs.readFile(xmlFle, 'utf-8', (err, data) => {
if (err) return `err: ${err}`
try {
const json = parser.toJson(data)
console.log('to json ->', json)
} catch (e) {
return `Convert fail: ${e}`
}
})
但由于某种原因我被抛出:
/path/to/file/file.xml:1
<Foo>
^
SyntaxError: Unexpected token '<'
仔细阅读了一些问答,我认为我的问题是由于在NodeJS中解析XML时fs
来自Unexpected token <的设置,但并不能防止该错误。
其他参考:
file.xml:
<Foo>
<Mon>
<Auth>326478326472347823</Auth>
<Signal>foo</Signal>
</Mon>
<Feed>
<Tag>biochemistry</Tag>
</Feed>
</Foo>
我的实际转换没有问题:
const parser = require('xml2json')
const xml = `<Foo>
<Mon>
<Auth>326478326472347823</Auth>
<Signal>foo</Signal>
</Mon>
<Feed>
<Tag>biochemistry</Tag>
</Feed>
</Foo>`
console.log('JSON output', parser.toJson(xml))
结果:
JSON output {"Foo":{"Mon":{"Auth":"326478326472347823","Signal":"foo"},"Feed":{"Tag":"biochemistry"}}}
为什么在尝试读取XML文件时出现错误?
您正在尝试require()
一个XML文件,该文件执行XML的方式就像是JSON / JavaScript。
您需要将路径./file.xml
作为字符串传递,但运行require('./file.xml')
时会将其读取并将其视为代码。
更换require('./file.xml')
用'./file.xml'
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句