我怎么可以指定D3.js自定义XML / SVG命名空间?(How can I specify a

2019-10-19 01:51发布

我试图定义一个SVG里面我自己的命名空间,所以我可以用我自己的标签和属性。 如果我理解正确的SVG应该是这样的:

<svg xmlns:myns="http://www.example.com/whatever/">
  <g myns:mycustomattr="123">
    ... 

我通过D3加根SVG元素,但添加一个命名空间将它与attr失败:

var svg = d3.select("#container")
  .append("svg")
    .attr('xmlns:myns', 'http://www.example.com/whatever/') 

NamespaceError:上述结果的代码试图创建或在某种程度上这是不正确关于命名空间改变对象

什么是添加命名空间使用D3.js为SVG正确的方法是什么?

Answer 1:

您只需设置d3.ns.prefix

d3.ns.prefix.myns = "http://www.example.com/whatever/";

然后使用它:

var svg = d3.select("#container")
  .append("svg")
    .attr('myns:someAttribute', 'some value');


文章来源: How can I specify a custom XML/SVG namespace with D3.js?