svg形状嵌套在形状 - 没有解析错误
问题描述:
我即将导入一个SVG到应用程序(JavaScript),实际上工作很好,除了他们没有分析错误抛出解析器(DOMParser)如果形状是nestet。例如,此代码:svg形状嵌套在形状 - 没有解析错误
<rect
style="fill:#393939;fill-opacity:1;stroke:none"
id="rect3066"
width="208.57143"
height="182.85715"
x="80"
y="77.14286"
transform="translate(0,452.36218) rotate(10) scale(2, 0.4)">
<rect
style="fill:#393939;fill-opacity:1;stroke:none"
id="rect3066"
width="208.57143"
height="182.85715"
x="80"
y="77.14286"
transform="translate(0,452.36218) rotate(10) scale(20, 40)">
</rect>
在Firefox中不会导致错误。 SVG - 形状元素here (the path-element for example)的规范并没有说它可以像儿童一样具有任何形状或容器元素。问题是,如果我尝试嵌套图形,那么应用程序正在为崩溃工作,所以解析错误会让我免于此。
我解析XML字符串与Firefox的的DOMParser这样的:
try{
doc = parser.parseFromString(text,
"image/svg+xml");
} catch(parseError){
this.onDone.call(this, "parseError");
}
如果有任何建议如何解决这个我会很高兴听到这个消息。
问候菲利普
答
为什么不验证使用W3C解析服务您的SVG:http://validator.w3.org/
+0
请务必设置正确的!DOCTYPE属性或使用下拉菜单强制它将其视为SVG 1.1。否则,可能仅检查文件的XML兼容性,并且如上述注释中所述,XML实际上是有效的。 – trlkly 2014-05-24 15:04:41
听起来像一个Firefox的错误...... – feeela 2012-03-01 15:31:08
嗯,我只是试图打开使用Inkscape这个文件,甚至也不会发生错误.. 。 – philipp 2012-03-01 15:33:36
这是完全有效的XML,所以这就是为什么在解析级别没有错误。问题在于SVG规范说你看不到结果。尽管这是一个更高层次的概念。毕竟你可以加载数据,然后使用DOM调用来重新引导rect,这样你就可以看到它。 – 2012-03-01 16:18:21