const converter = new showdown.Converter(); fetch("./event-test.xml") .then((response) => response.text()) .then((jsonResponse) => parseXML(jsonResponse)) .catch((error) => console.error(error)); const parseXML = (XML) => { const eventItemRegex = /(.|\n)*?<\/eventitem>/g; const shortRegex = /(?<=)(.|\n)*?(?=<\/short>)/g; const abstractRegex = /(?<=)(.|\n)*?(?=<\/abstract>)/g; const dateRegex = /(?<=)/g; const timeRegex = /(?<=)/g; const roomRegex = /(?<=)/g; const titleRegex = /(?<=)/g; let eventItems = []; while ((eventItems = eventItemRegex.exec(XML)) !== null) { dateRegex.lastIndex = 0; timeRegex.lastIndex = 0; roomRegex.lastIndex = 0; titleRegex.lastIndex = 0; shortRegex.lastIndex = 0; abstractRegex.lastIndex = 0; const eventItem = eventItems[0]; let dateStr = dateRegex.exec(eventItem); let timeStr = timeRegex.exec(eventItem); date = new Date(dateStr[0] + " " + timeStr[0]); let room = roomRegex.exec(eventItem); let title = titleRegex.exec(eventItem); let short = shortRegex.exec(eventItem); let abstract = abstractRegex.exec(eventItem); console.log(eventItem); console.log(date); console.log(room[0]); console.log(title[0]); console.log(converter.makeMarkdown(short[0])); console.log(converter.makeMarkdown(abstract[0])); } };