function parseMontclairResults(xml) {
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xml, 'text/xml');
const contestElements = xmlDoc.getElementsByTagName('Contest');
const montclairResults = [];
for (let i = 0; i < contestElements.length; i++) {
const contest = contestElements[i];
const contestText = contest.getAttribute('text');
if (contestText.includes('Montclair')) {
const choiceElements = contest.getElementsByTagName('Choice');
for (let j = 0; j < choiceElements.length; j++) {
const choice = choiceElements[j];
const choiceText = choice.getAttribute('text');
const voteTypeElements = choice.getElementsByTagName('VoteType');
for (let k = 0; k < voteTypeElements.length; k++) {
const voteType = voteTypeElements[k];
const voteTypeName = voteType.getAttribute('name');
const precinctElements = voteType.getElementsByTagName('Precinct');
for (let l = 0; l < precinctElements.length; l++) {
const precinct = precinctElements[l];
const precinctName = precinct.getAttribute('name');
const votes = parseInt(precinct.getAttribute('votes'), 10);
montclairResults.push({
contest: contestText,
candidate: choiceText,
voteType: voteTypeName,
precinct: precinctName,
votes
});
}
}
}
}
}
return montclairResults;
}