Javascript d3附加一个带有svg扩展名的图像

Javascript d3附加一个带有svg扩展名的图像,javascript,image,svg,d3.js,xlink,Javascript,Image,Svg,D3.js,Xlink,我正在尝试将扩展名为“.svg”的svg图像添加到我的图表(另一个使用d3创建的svg图像) 代码如下: d3.select("#chart1 svg") .append("svg:image") .attr("xlink:href", "img/icons/sun.svg") .attr("width", 40) .attr("height", 40) .attr("x", 228) .attr("y",53); 如您所见,我正在设置“xlink:href”属性,但d

我正在尝试将扩展名为“.svg”的svg图像添加到我的图表(另一个使用d3创建的svg图像)

代码如下:

d3.select("#chart1 svg")
  .append("svg:image")
  .attr("xlink:href", "img/icons/sun.svg")
  .attr("width", 40)
  .attr("height", 40)
  .attr("x", 228)
  .attr("y",53);
如您所见,我正在设置“xlink:href”属性,但d3在浏览器中将其更改为href:

<image href="img/icons/sun.svg" width="40" height="40" x="228" y="53"></image>


事实上,如果我使用png扩展,这段代码可以完美地工作。有什么想法吗?

代码应该按原样工作-这里您可以看到一个将.svg文件附加到d3的示例:

别忘了照片可能就在那里,但你就是看不见- 您应该使用浏览器开发工具检查页面,以查看图片是否已放置在视图区域之外(例如,由于您的x/y值)


更多关于
#图表1
的信息将有助于解决这个问题。

我对此也有疑问。显然,如果前缀是已知的名称空间,D3会删除前缀。这里有关于名称空间的更多细节:只要属性添加了
setAttributeNS
,它在所有浏览器中都可以正常工作(需要说明的是,D3可以做到这一点)。如果您希望以特定的方式完成文档/元素序列化,则属性本身缺少前缀确实是一个问题。看起来这在今天仍然是一个问题。。。到目前为止,有人找到了解决方案吗?有可能在DOM中实现svg吗?