Skip to content

Instantly share code, notes, and snippets.

Last active Feb 22, 2020
What would you like to do?
External SVG
license: gpl-3.0
<!DOCTYPE html>
<meta charset="utf-8">
<script src=""></script>
d3.xml("rect01.svg").mimeType("image/svg+xml").get(function(error, xml) {
if (error) throw error;
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
<svg width="12cm" height="4cm" viewBox="0 0 1200 400"
xmlns="" version="1.1">
<desc>Example rect01 - rectangle with sharp corners</desc>
<!-- Show outline of canvas using 'rect' element -->
<rect x="1" y="1" width="1198" height="398"
fill="none" stroke="blue" stroke-width="2"/>
<rect x="400" y="100" width="400" height="200"
fill="yellow" stroke="navy" stroke-width="10" />
Copy link

fcsds commented Feb 4, 2016

Question: How do I add other svg objects on top of the rectangle?

Copy link

roadluac2016 commented Oct 11, 2017

How i can put SVG external file with"#mysvg").append()... ?

Copy link

wjentner commented Aug 29, 2018


I know the question is kinda far in the past but perhaps it'll help someone:

The way I did it was (note that this is d3v5):

        d3.svg('external.svg').then((svg) => {
            //the external svg looks like this: [...]<svg><g>[...]</g></svg> so I select the g element and inject it into my svg
            const gElement ='g'); 

With it did not work in my case.
I don't know if my approach is best practice but it certainly works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment