Мне нужен мощный пакет для разбора больших XML файлов, и я натолкнулся на xml -stream . Это здорово, но по какой-то причине я не могу найти способ разбора неизвестных узлов, он ожидает, что я отправлю ожидаемое поле в качестве параметра.
Это файл XML
<Offers>
<Offer>
<Model>
694547
</Model>
<RegularPrice>
219.00
</RegularPrice>
<ParentSKU>
654987
</ParentSKU>
</Offer>
<Offer>
<Model>
694548
</Model>
<RegularPrice>
235.00
</RegularPrice>
<ParentSKU>
123456
</ParentSKU>
</Offer>
И вот код, который я использую
var XmlStream = require('xml-stream');
var fs = require('fs');
var stream = fs.createReadStream(filePath);
var xml = new XmlStream(stream);
xml.on('endElement: Offer', function (item) { //<<<- Here I need to add 'Offer' as an expected node
console.log('loaded', JSON.stringify(item));
});
xml.on('end', function () {
console.log('END XML');
});
Ответ отличный, как и ожидалось
loaded {"Model":"694547","RegularPrice":"219.00","ParentSKU":"654987"}
loaded {"Model":"694548","RegularPrice":"235.00","ParentSKU":"123456"}
END XML
Как я могу получить тот же список без мне нужно установить «Предложение» в качестве ожидаемого узла? XML, которые я ожидаю получить, могут иметь разные узлы и значения.