我即將導入一個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");
}
如果有任何建議如何解決這個我會很高興聽到這個消息。
問候菲利普
聽起來像一個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