Cheerio can parse "almost any HTML / XML document" as they market themselves. Parsing XML is pretty straightforward, all you need to do is set xmlMode: true
on cheerio.load method.
Read the documentation for more XML options.
Quick example
const cheerio = require('cheerio')
const fetch = require('isomorphic-unfetch')
const BNR_URL = 'https://www.bnr.ro/nbrfxrates.xml'
fetch(BNR_URL)
.then((response) => response.text())
.then((xml) => {
const $ = cheerio.load(xml, {
xmlMode: true,
})
console.log($('Rate'))
})
You can try the example in Runkit: