从var js中获取特定的tagName

时间:2018-05-23 10:43:47

标签: javascript xml svg

我有一个var保存了我的编码数据

console.log(encodedData)

它看起来像这样:

<?xml version="1.0" encoding="UTF-8" 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" version="1.1" width="185" height="104">
  <path fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M 184 64 c -0.14 -0.09 -5.24 -3.95 -8 -5 c -3.9 -1.49 -8.71 -2.82 -13 -3 c -11.25 -0.47 -23.46 -0.3 -35 1 c -12.09 1.36 -23.69 4.22 -36 7 c -16.61 3.76 -31.5 8.08 -48 12 c -3.73 0.88 -7.32 1.74 -11 2 c -5.6 0.4 -11.48 0.42 -17 0 c -2.99 -0.23 -6.16 -1.13 -9 -2 c -1.38 -0.42 -3.12 -1.12 -4 -2 c -0.88 -0.88 -1.91 -2.71 -2 -4 c -0.21 -3.18 0.11 -7.78 1 -11 c 0.65 -2.35 2.39 -4.86 4 -7 c 5.38 -7.18 10.67 -15.3 17 -21 c 6.43 -5.79 15.06 -10.4 23 -15 c 4.79 -2.77 9.82 -4.93 15 -7 c 4.95 -1.98 9.9 -3.63 15 -5 c 3.61 -0.97 7.23 -1.49 11 -2 c 3.72 -0.51 7.45 -1.24 11 -1 c 6.19 0.41 12.92 1.53 19 3 c 3.4 0.82 7.06 2.19 10 4 c 5.46 3.36 11.88 7.42 16 12 c 4.34 4.83 8.34 11.74 11 18 c 3.83 9.01 6.88 19.15 9 29 c 2.54 11.79 5 36 5 36"/>
</svg>

如何从中获取svg标签?

2 个答案:

答案 0 :(得分:0)

您可以创建一个虚拟元素并将变量赋值给它。

var elem = document.createElement( 'html' );
elem.innerHTML = encodedData;
console.log(elem.getElementsByTagName( 'svg' ));

答案 1 :(得分:0)

如果encodedData包含字符串,parse将其保存到Document

const svgDOM = new DOMParser().parseFromString(encodedData, "image/svg+xml");

如果它已经是Documentselect svg元素:

const svgElem = svgDOM.querySelector("svg"); // or `encodedData.querySelector("svg")`

如果您需要将<svg>标记作为字符串,serialize将其转换为字符串:

const svgTag = new XMLSerializer().serializeToString(svgElem, "image/svg+xml");
相关问题