mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-04 10:19:24 +02:00
27 lines
642 B
JavaScript
27 lines
642 B
JavaScript
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;
|
|
};
|