12345678910111213141516171819202122 |
- import { isString } from '../core/util';
- /**
- * For big svg string, this method might be time consuming.
- */
- export function parseXML(svg: Document | string | SVGElement): SVGElement {
- if (isString(svg)) {
- const parser = new DOMParser();
- svg = parser.parseFromString(svg, 'text/xml');
- }
- let svgNode: Node = svg;
- // Document node. If using $.get, doc node may be input.
- if (svgNode.nodeType === 9) {
- svgNode = svgNode.firstChild;
- }
- // nodeName of <!DOCTYPE svg> is also 'svg'.
- while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {
- svgNode = svgNode.nextSibling;
- }
- return svgNode as SVGElement;
- }
|