Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Import and parse SVG file in D3.js

Tags:

d3.js

I have SVG files created elsewhere (using MS Visio) which I would like to use as background for a visualization, where some positioning is driven by the placement of items in the SVG graphic. Ideally, I would be able to manipulate the imported SVG data directly, and then use it to create elements in the calling document using D3.

Is there a simple way to import an existing SVG document into a data structure using D3, similarly to the way that JSON can be imported? I've tried d3.xml, but don't seem to get a useful data structure. Importing the graphic with an IMG tag doesn't populate the DOM with SVG elements as far as I can see.

One small complication: it must also work in IE9! (ImportNode doesn't work)

like image 673
David Christie Avatar asked Mar 13 '13 14:03

David Christie


1 Answers

Thanks for the ideas. I found out what to do in the end. It is possible to import the SVG file using a d3.xml call. The parsing is done, but the complication is how to understand the DOM structure which is produced. IE9 seems to have a problem with placing the imported node, but I don't need that behaviour as I only want to use aspects of the incoming SVG, and will be regenerating SVG using D3

like image 175
David Christie Avatar answered Oct 11 '22 13:10

David Christie