如何使用Webpack加载器导入XML而不自动转换为JSON

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

Webpack 4的xml-loader自动将导入的XML文件转换为JSON。

通过什么方式可以导入XML而无需转换为JSON?

XML数据将使用现有的应用程序专用XML解析器进行处理。

要清楚,我绝对不希望以JSON格式加载结果。

xml webpack-4
1个回答
0
投票

事实证明,相对简单,如果没有那么好记录。

基本上,我们依赖raw-loader,所以(使用pnpm来避免模块重复):

pnpm install --save-dev raw-loader

在您的webpack配置文件中:

rules: [
  { test: /\.xml$/,
    use: [
      'raw-loader'
    ]
  },
:

我将在这里使用d3.js(更多声明,因此简洁)。

解析xml的方式因应用程序而异。在这里,我展示了处理MusicXML格式文件的第一步,其中得分采用分段格式。

拥有顶级标签后,您就可以开始挖洞了。其他xml格式有自己的专用标记 - 您需要在代码中进行研究和寻址。

import * as d3 from 'd3';
import score from '!!raw-loader!./path-to-file.xml';

var parser = new DOMParser();
var score_as_xml = parser.parseFromString(score, "application/xml");

// Could use d3.select(), as should only be one "score-partwise" occurrence:
var score_partwise_tag = d3.selectAll(score_as_xml.getElementsByTagName("score-partwise"));

if ((score_partwise_tag .. and so on.
© www.soinside.com 2019 - 2024. All rights reserved.