Оказалось, что это относительно просто, если не так хорошо задокументировано.
По сути, мы полагаемся на raw-загрузчик, поэтому (используя pnpm, чтобы избежать дублирования модуля):
pnpm install --save-dev raw-loader
в вашем конфигурационном файле веб-пакета:
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.