0
我想從使用特殊字符的字符串中編寫正確的svg。我爲svg文檔使用UTF-8編碼。我正在使用javascript。 該字符串是這樣的:如何爲特殊字符編寫正確的xml
<glyph unicode="¥" horiz-adv-x="819" />
在使用的DOMParser API編寫XML,將其轉換成¥¥這是不正確的XML和瀏覽器拋出XML解析錯誤。
這裏是我想轉換成SVG文檔的完整文本。
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="DearestRegular" horiz-adv-x="2048" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<glyph unicode="¥" horiz-adv-x="819" />
</font>
</defs>
</svg>
使用的DOMParser我得到的輸出,如:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="DearestRegular" horiz-adv-x="2048" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<glyph unicode="¥" horiz-adv-x="819" />
</font>
</defs>
</svg>
這將引發XML解析錯誤的瀏覽器。
我只是用與XMLHttpRequest對象本地AJAX來讀取SVG文件。這裏是代碼:var req = new XMLHttpRequest(); req.open(「GET」,「Fonts/myFont.svg」,true); req.onreadystatechange = function(){if(4 == req.readyState){var text = req.responseText,dom =(new DOMParser ))。parseFromString(text,「image/svg + xml」)}}; req.send(null);我收到的doc對象爲字符¥提供了XML解析錯誤。對於正確的svg文檔,它應該是¥。 – radhe001 2012-07-18 05:58:21