stringToMpdXml.js 642 Bytes
import {DOMParser} from '@xmldom/xmldom';
import errors from './errors';

export const stringToMpdXml = (manifestString) => {
  if (manifestString === '') {
    throw new Error(errors.DASH_EMPTY_MANIFEST);
  }

  const parser = new DOMParser();
  let xml;
  let mpd;

  try {
    xml = parser.parseFromString(manifestString, 'application/xml');
    mpd = xml && xml.documentElement.tagName === 'MPD' ?
      xml.documentElement : null;
  } catch (e) {
    // ie 11 throwsw on invalid xml
  }

  if (!mpd || mpd &&
      mpd.getElementsByTagName('parsererror').length > 0) {
    throw new Error(errors.DASH_INVALID_XML);
  }

  return mpd;
};