【问题标题】:Get SVG XML from .svg file via URL using Nodejs使用 Nodejs 通过 URL 从 .svg 文件中获取 SVG XML
【发布时间】:2021-08-19 15:30:28
【问题描述】:

我正在尝试从外部托管的 SVG 获取 XML 数据字符串。我应该注意我正在使用 Nodejs。我的目标是将 .svg 文件的内容嵌入到如下字符串中:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%">
    <g transform="translate(${x}, ${y}) scale(${scale})">
        //INLINE SVG
    </g>
</svg>`

这种方法的原因是 svg 是内联的,而不是通过 URL 引用。我想动态嵌入 svg 文件的内容。文件根据 API 请求更改,因此我不能只打开 svg 文件并复制和粘贴内容。它需要以编程方式解析,以便通过 URL 提供的任何 .svg 文件都变成内联 svg。

实现我的目标的最佳方法是什么?

【问题讨论】:

标签: node.js xml svg


【解决方案1】:

我建议使用 http 客户端,例如 axios 来获取 xml。

使用 axios.get 非常简单:

const axios = require("axios");
const url = "https://upload.wikimedia.org/wikipedia/commons/1/1a/SVG_example_markup_grid.svg";

async function downloadSvg(url) {
    let response = await axios.get(url);
    const svgXml = response.data;
    console.log("Svg xml:", svgXml);
}

downloadSvg(url);

下载后,SVG xml 将分配给 svgXml 变量。

【讨论】:

  • 嘿,您的解决方案工作得非常好,只是想知道我将如何更改 XML 中的值?例如 viewBox 值。收到 svgXml 后这可能吗?
  • 哦,是的,当然。我建议为此目的使用 XML 解析器,例如:npmjs.com/package/xml2js.
猜你喜欢
  • 2017-08-19
  • 2016-03-14
  • 2011-05-03
  • 2016-05-12
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
相关资源
最近更新 更多