【发布时间】:2018-02-06 01:52:39
【问题描述】:
我正在尝试使用 DOMParser 从字符串中解析 SVG。如果 SVG 字符串具有属性 xmlns,则元素会正确呈现。否则浏览器不会渲染它,但元素存在于 DOM 中(它在开发工具中可见)。
在这个例子中只渲染第一个元素: https://jsfiddle.net/Severn101/jatkyvw7/
var circle1 = '<circle cx="25" cy="25" r="25" xmlns="http://www.w3.org/2000/svg" />';
var circle2 = '<circle cx="25" cy="25" r="25" />';
var svgElement = document.getElementById('svg');
var parser = new DOMParser();
var doc1 = parser.parseFromString(circle1, "image/svg+xml").documentElement;
var doc2 = parser.parseFromString(circle2, "image/svg+xml").documentElement;
svgElement.appendChild(doc1);
svgElement.appendChild(doc2);
为什么会发生这种情况以及如何解析没有 mlns 属性的 svg 字符串?
【问题讨论】:
-
按标准向 XML 解析器提供“image/svg+xml”文件时需要命名空间:Are SVG parameters such as 'xmlns' and 'version' needed?(第一个和第二个答案)
标签: javascript