我一直在尝试使用"xml-js"解析XML文件。我收到无效 XML 数据的错误。我尝试在线格式化XML内容,格式化后我能够解析。所以我正在尝试首先使用"xml格式化程序"格式化内容。但是我收到以下错误。请帮助我解决上述问题。谢谢。
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:projectnode_modulesxml-parser-xoindex.js:49:19)
at parse (D:projectnode_modulesxml-parser-xoindex.js:236:12)
at format (D:projectnode_modulesxml-formatterindex.js:141:23)
at D:projectImportRouter.js:97:28
如果没有看到XML(并且没有更具体的错误消息(,就不可能说。
xml-js 声称"完全符合 XML";但是如果你看一下它的依赖关系,它依赖于承认限制的 SAX 库,例如在 DTD 和实体处理领域。我的猜测是,您的XML属于这些限制所涵盖的区域,并且您的在线格式化程序删除了有问题的构造。
xml-格式化程序包反过来依赖于xml-parser包,它预先声明它是一个"简单的不兼容XML解析器"[原文如此],但没有说明限制是什么,所以依靠它来清理XML充其量是乐观的。
恐怕 JavaScript 世界中 XML 解析器的合规性标准还有很多不足之处。我们在开发Saxon-JS时仔细观察了一下,我们看过的所有产品都有缺陷。