首页 > 解决方案 > 从 var js 获取特定的 tagName

问题描述

我有一个 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 标签?

标签: javascriptxmlsvg

解决方案


如果encodedData包含一个字符串,则将其解析Document

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

如果它已经是 a ,请Document选择元素svg

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

如果您需要将<svg>标签作为字符串,请将其序列化回字符串:

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

推荐阅读