我尝试使用JavsScript DOM解析器解析MSSQL中存储的SVG图像。
我尝试了很多可能性(在代码中有注释)。在生成的SVG中出现“ \ n”和“ \ r”,并且SVG看起来很糟。 SVG是使用Adobe Photoshop设计的,因此SVG元素标记中具有尚未应用的样式。
这是我的代码
function func1(svgId) {
// ajax call to fetch the SVG string from the database
let xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
let resSVG = JSON.parse(xhr.response)[0]['SVG'];
// Removing the whitespaces from the SVGS
resSVG = resSVG.trim();
// Removing \ that is appened to all the double quotes (")
resSVG = resSVG.replace(/\\/g, "");
// DOM parser to parse the SVG
let parser = new DOMParser();
let docSVG = parser.parseFromString(resSVG, "image/svg+xml");
// let docSVG = parser.parseFromString(resSVG, "text/html");
level1.append(docSVG.documentElement);
}
};
xhr.open("GET", URL.getFloorSVGs + svgId, false);
// xhr.overrideMimeType("application/xml");
xhr.overrideMimeType("image/svg+xml");
xhr.setRequestHeader("Content-type", "text/xml");
xhr.send("");
}