如何使用nodejs将svg节点保存到文件中?

我正在使用d3通过一个小帮手包: https : //www.npmjs.com/package/d3-node

我使用d3-node创build了我的svg文件,下面是代码。

const D3Node = require('d3-node') var d3n = new D3Node() var svg = d3n.createSVG() .style("width","1920px") .style("height","1080px") .attr("preserveAspectRatio","true") .html(firstTemplate) .append("myCustomTag") 

在此之后,我不知道如何保存输出。 主要的问题是在myCustomTag

 console.log(d3n.d3Element.select("svg").node().innerHTML) 

这行应该输出我的SVG,它的确如此,除了myCustomTag变成mycustomtag和我的SVG被损坏。

我试过select("svg").node().outerHTMLselect("svg").html() ,innerText,我什么也找不到。

在这种情况下,我不能使用innerHTML,有没有办法直接从d3variables存储svg文件?

你可以使用xmlserializer,因为SVG是XML,而XML是区分大小写的。 像这样的东西适合我 :

 const D3Node = require('d3-node'); const xmlserializer = require('xmlserializer'); const d3n = new D3Node(); var svg = d3n.createSVG() .style("width","1920px") .style("height","1080px") .attr("preserveAspectRatio","true"); svg.append("myCustomTag"); console.log(xmlserializer.serializeToString(svg.node())); 

HTML不区分大小写,所以当你尝试使用HTML方法来序列化的东西,你不一定会得到你想要的。