Blame view

node_modules/zrender/src/tool/parseXML.ts 692 Bytes
bd028579   易尊强   2/28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  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;
  }