0

我一直在尝试使用“xml-js”解析 XML 文件。我收到无效 XML 数据的错误。我尝试在线格式化 XML 内容,格式化后我能够解析。所以我试图首先使用'xml-formatter'来格式化内容。但我收到以下错误。请帮我解决上述问题。谢谢你。

    var format = require('xml-formatter');
    var xml = await fs.readFile("Master.xml", "utf8");
    var formattedXml = format(xml);

错误

Error: Failed to parse XML
at document (D:\project\node_modules\xml-parser-xo\index.js:49:19)
at parse (D:\project\node_modules\xml-parser-xo\index.js:236:12)
at format (D:\project\node_modules\xml-formatter\index.js:141:23)
at D:\projectImportRouter.js:97:28
4

1 回答 1

0

如果没有看到 XML(并且没有更具体的错误消息),这是不可能的。

xml-js 声称“完全符合 XML”;但是如果您查看它的依赖关系,它依赖于承认限制的 SAX 库,例如在 DTD 和实体处理领域。我的猜测是您的 XML 属于这些限制所涵盖的区域,并且您的在线格式化程序删除了有问题的结构。

xml-formatter 包又依赖于 xml-parser 包,它预先说它是一个“简单的非兼容 XML 解析器”[原文如此],没有说明限制是什么,所以依靠它来清理你的 XML 是充其量是乐观的。

恐怕 Javascript 世界中 XML 解析器的合规标准还有很多不足之处。我们在开发 Saxon-JS 的时候看了一下,看的所有产品都有不足。

于 2020-06-29T08:45:59.850 回答