Webpack 4的xml-loader自动将导入的XML文件转换为JSON。
通过什么方式可以导入XML而无需转换为JSON?
XML数据将使用现有的应用程序专用XML解析器进行处理。
要清楚,我绝对不希望以JSON格式加载结果。
事实证明,相对简单,如果没有那么好记录。
基本上,我们依赖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.